diff options
Diffstat (limited to 'tutorial/Introduction.html')
-rw-r--r-- | tutorial/Introduction.html | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/tutorial/Introduction.html b/tutorial/Introduction.html new file mode 100644 index 0000000..fdec2c2 --- /dev/null +++ b/tutorial/Introduction.html @@ -0,0 +1,96 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> + + +<head> +<title>OpenJava : Tutorial</title> +<meta http-equiv="Keywords" content="java, openjava, reflection"> +</head> + + +<body bgcolor="white" + text="#000000" link="#007fff" vlink="#006fdf" alink="#ff0000"> + + +<!----------------------------------------------------------------------> + + +<center> + +<h1><font color="Blue">OpenJava Tutorial</font></h1> + +</center> + + +<!----------------------------------------------------------------------> +<hr width="100%"> +<!----------------------------------------------------------------------> + + +<h2>1. <font color="blue">Introduction</font></h2> + + +<p>OpenJava is an extensible language based on Java. The extended +features of OpenJava are specified by a meta-level program given at +compile time. For distinction, programs written in OpenJava are called +base-level programs. If no meta-level program is given, OpenJava is +identical to regular Java. + +<p>The meta-level program extends OpenJava through the interface +called the OpenJava MOP (Metaobject Protocol). The OpenJava compiler +consists of three stages: preprocessor, source-to-source translator +from OpenJava to Java, and the back-end Java compiler. The OpenJava +MOP is an interface to control the translator at the second stage. It +allows to specify how an extended feature of OpenJava is translated +into regular Java code. + +<p>An extended feature of OpenJava is supplied as an add-on software +for the compiler. The add-on software consists of not only the +meta-level program but runtime support code. The runtime support code +provides classes used by the base-level program translated into +Java. The base-level program in OpenJava is first translated into Java +by the meta-level program and is dynamically linked with the runtime +support code. This flow is illustrated by Figure 1. + +<center> +<img src="images/comflow.gif"><br> +Figure 1 : Data Flow of OpenJava Compiler +</center> + +<p>The meta-level program is written in Java, accurately in OpenJava +because OpenJava is a self-reflective language. It defines new +metaobjects to control source-to-source translation. The metaobjects +are the meta-level representation of the base-level program and they +perform the translation. Details of the metaobjects are specified by +the OpenJava MOP. In the following, we go through a few examples so +that we illustrate how the OpenJava MOP is used to implement language +extensions. +<p> + + +<!----------------------------------------------------------------------> +<hr width="100%"> +<!----------------------------------------------------------------------> + + +<center> + +Please send any message to : +<address> +mich@acm.org +</address><BR> + +</center> + + +<font size=1>Copyright (C) 1999 by Michaki Tatsubori.</font><br> +<font size=1>Java(TM) is a trademark of Sun Microsystems, Inc.</font> + + +<!----------------------------------------------------------------------> + + +</body> + + +</html> |