Juice, Oberon2LaTex, OM2-XDS V2.20 PC/WNT/W95 native code
Oberon-2 and Modula-2 Technical Publication
Ubaye’s First Unbiased Modula-2 & Oberon-2 Journal! Nr. 9,
Oct-1996
Juice
Michael Franz (franz@uci.edu) and Thomas Kistler (kistler@ics.uci.edu), College of
California, Irvine, U.S.A., seventeenth June 1996
Introducing Juice
Juice is a brand new know-how for distributing executable content material throughout the World Broad
Net. On this respect, it’s much like Java from Solar Microsystems. Nevertheless, as we are going to strive
to elucidate within the following, Juice differs from Java in a number of essential facets that
permits it to outperform Java in lots of “downloadable Applets” purposes. The
benefits of Juice develop into much more pronounced when the “Applets” are giant. Java,
then again, has a bonus within the space for which it was initially invented:
embedded purposes in client electronics and family home equipment. Juice is
meant to be a complement to Java, giving customers a alternative: Java or Juice.
Java is a trademark owned by Solar Microsystems, Inc.
Juice is a trademark owned by the Regents of the College of California.
A Little Historical past To Begin With
Juice is not merely a Java-lookalike; that now we have created in fast response to Solar
Microsystems’ Java announcement. Fairly on the contrary, work on Juice has preceded
Java by a number of years, nevertheless it all occurred in an instructional surroundings with extra restricted
sources than obtainable at Solar. The one a part of Juice that has been influenced by Java
is the food-related identify.
Juice grew out of a analysis challenge headed by Niklaus Wirth, the inventor of the Pascal
and Modula programming languages. His goal was to invent a language that was directly
easy and secure to make use of. The brand new language must also help the object-oriented
programming paradigm, be effectively compilable, and relevant to a variety of
programming duties from methods programming to educating. A language with these
properties was outlined by Wirth in 1988 and given the identify Oberon
http://caesar.ics.uci.edu/oberon/intro.html.
At first sight, Oberon and Java appear to be as totally different as two languages can presumably be.
Oberon appears loads like Pascal (not very stunning, since they have been each invented by the
identical particular person), and Java appears loads like C (thereby showing “acquainted” to many
programmers). A more in-depth comparability of Oberon and Java, nevertheless, yields surprisingly
many similarities: each languages
* are strongly typed whereas allowing the definition of prolonged varieties which might be
backward-compatible with their ancestors,
* prohibit pointer arithmetic and mandate the presence of a rubbish collector of their
run-time surroundings, and
* present the notion of modular packages which might be compiled individually and dynamically
linked at run-time
Juice is to the Oberon language what the Java Digital Machine
(http://java.solar.com/java.solar.com/whitePaper.Platform/JavaPlatform.doc2.html#6978)
is to the Java language: the technique of distributing moveable software program. Work on what has
now develop into Juice began in 1989 and contributed to Michael Franz’s Ph.D. diploma in
1994 (http://www.ics.uci.edu/~franz). The title of his 1994 dissertation, virtually a 12 months
and a half earlier than the announcement of Java, was “Code-Era On-The-Fly: A Key
to Transportable Software program”.
What Is Juice and How Does It Differ From Java
Juice encompasses three key elements
– an architecture-neutral software program distribution format,
– a compiler that interprets from Oberon into the Juice moveable format, and
– a “plug-in” that permits the Netscape browser (http://residence.netscape.com) to run Juice
applets.
To the technical layman, probably the most notable distinction between comparable Juice and
Java applets might be that the Juice model of any applet is prone to run loads sooner
than its Java counterpart. Slightly than being interpreted, as Java applets usually are,
Juice at all times compiles every applet into the native code of the goal machine earlier than it
begins execution. As soon as that an applet begins executing, it runs on the full velocity of
compiled code. Juice’s on-the-fly compilation course of isn’t solely exceptionally quick, nevertheless it
additionally generates object code that’s comparable in high quality to business C compilers. In
distinction, even the newest just-in-time compilers for Java which have been introduced by
main distributors usually are not but attempting to compete with common compilers.
Additional, the moveable Juice illustration is denser than Java byte-codes. Customers with
gradual connections to the Web save time by downloading Juice applets quite than
Java applets of the identical performance. In truth, the time saved by the sooner downloading
usually greater than compensates for the on-the-fly compilation part.
How then, do a number of tutorial researchers handle to give you a greater on-the-fly
compiler than an entire trade of software program corporations? Nicely, the important thing to Juice’s
effectiveness is not actually discovered within the compiler know-how embedded inside the Netscape
plug-in, however within the Juice software program distribution format itself: Behind the scenes, Juice and
Java differ by far a couple of would possibly count on.
Java’s distribution format is a sequence of so-called byte-codes: the inventors of Java
thought up an “best” processor designed particularly for operating Java packages and use
the instruction set of this best processor because the “intermediate language” wherein Java
packages are shipped. Therefore, on the programmer’s facet, a Java compiler interprets the
supply right into a byte-code sequence, and on the facet of the eventual client, a
byte-code interpreter simulates the best Java processor. It’s solely conceivable that
the best Java processor can really be applied in {hardware}, and Solar has really
already introduced such processors.
Juice’s distribution format, then again, is much extra complicated. It’s based mostly on a
tree-shaped program illustration as is often used transiently inside optimizing
compilers. Slightly than containing a linear code-sequence that may be interpreted
byte-by-byte, a Juice-encoded applet accommodates a compressed tree that describes the
actions of the unique program. The tree preserves the control-flow construction of the
authentic program, which makes it a lot simpler to carry out code optimization whereas the tree
is translated into the native instruction set of the goal machine.
For instance of what sorts of optimizations could also be useful, take into account a contemporary
processor that has a number of useful items. These require a sure instruction-mix in
order to function at high velocity. By re-ordering sure mutually unbiased directions,
a greater instruction-mix could also be achieved. A tree-based encoding maintains the notion of
a fundamental block and makes it comparatively simple to determine if two directions are mutually
unbiased. This isn’t so easy with a linear instruction stream, corresponding to Java
byte-codes, wherein any instruction can probably be the goal of a department.
Additional, our tree-based encoding avoids most of the safety points which might be troublesome to
remedy in Java, or in any virtual-machine illustration for that matter. By the very
definition of our tree-encoding scheme, it’s unattainable to encode a tree that violates
scoping guidelines of our supply language. Such an “unlawful” program can not even be
constructed by hand. Java’s byte-code directions, then again, are at a a lot
decrease semantic degree. Though it’s potential to confirm {that a} given byte-code sequence
would not carry out any unlawful motion, this requires data-flow evaluation and a partial repetition
of the compiler’s integrity checks. The tree-based Juice distribution format in impact
makes this specific data-flow evaluation pointless. It additionally permits for extremely environment friendly
load-time integrity checking, as each node within the encoded tree is absolutely typed.
The right way to Get hold of Juice
The best method to study extra about Juice is by merely taking a look at it. The
Juice-homepage which accommodates an introduction to Juice, the plug-in
download-instructions, and demo applets may be discovered on the Web at:
http://caesar.ics.uci.edu/juice
To be able to see the demos, it’s worthwhile to set up the Netscape Juice plug-in. This plug-in is
obtainable for the next platforms:
* Apple PowerPC Macintosh
* PC-compatible operating Home windows 95
Conclusion
We imagine that Juice is a greater know-how than Java for bringing executable content material to
the World Broad Net. Juice permits substantial quantities of software program to be encoded
space-efficiently, and to be compiled on-the-fly into high-quality code. The Juice
architecture-neutral distribution format has a wide range of properties that make it inherently
higher suited to purposes that require the velocity of optimized object code.
Java, then again, is the higher alternative within the area for which it was initially
created: embedded purposes in client electronics and family home equipment.
Aided by a {hardware} implementation of the Java digital machine, this creates a regular
run-time structure for embedded software program that requires a small reminiscence footprint.
[ed. note: published with permission of the author.]
The ModulaTor Discussion board
AlphaOberon Information: Oberon-text to LaTex Converter
by Guenter Dotzel, ModulaWare
An Oberon to LaTex converter known as Edit2LaTex is now obtainable for the Oberon System
V4. Supply code after all. Developed by Joerg Derungs.
Edit2LaTex can deal with Oberon texts, graphics- and table-elements. Its OO-architecture
makes extensions to help customized hypertext-elements very simple. Skeleton texts are
included. They present how the paragraph controls (parcs) of Oberon texts serve to
decide the LaTex doc construction.
Edit2LaTex could be very simple to make use of, however sadly, the documentation is in German solely
(Edit2LaTex_Docu.Textual content).
Edit2LaTex was added to ModulaWare’s AlphaOberon distribution.
With one additional step, utilizing the LaTex2Html converter, you’ll be able to generate your HTML
information (e.g. for the world vast internet) mechanically from the Oberon wysiwyg-text/graphics
editor.
Native XDS-x86 v2.20 for Home windows NT and Home windows 95 Launch
by xTech, Ltd.
The native code XDS-x86 v2.20 Oberon-2 and ISO Modula-2 Compiler for Home windows NT
and Home windows 95 is now obtainable.
xTech Growth System (XDS) is the household identify of knowledgeable Modula-2 and
Oberon-2 programming system.
XDS is out there for hottest platforms, together with PC/MS-DOS, OS/2, Linux,
Home windows NT, Home windows 95, Unix workstations (Solar, HP, DEC, MIPS), PowerMac, and so on.
XDS supplies a uniform programming surroundings for all talked about platforms and
permits to design and implement actually moveable software program.
The XDS Modula-2 compiler implements the ISO commonplace of Modula-2. The ISO
Modula-2 library set is accessible from XDS Modula-2 and Oberon-2 packages.
All XDS implementations share the identical platform-independent front-end for each supply
languages. There are mainly two back-ends. The output code may be both native code
for the goal platform (Native XDS) or textual content within the ANSI C language. The ANSI C code
generator is out there for all above talked about platforms. Native code compilers are
presently obtainable for the PC beneath WNT/Win95, OS/2, and Linux.
XDS contains the usual ISO and PIM libraries together with a set of utility libraries and
an interface to the ANSI C library set.
Native XDS-x86 for Home windows NT and Home windows 95 produces extremely optimized 32-bit code
and comes with two main enhancements: IDE and Win32 API help. A major
subset of the Win32 API is accessible from XDS Modula-2 and Oberon-2.
XDS contains on-line assist and manuals in PostScript format: isolib.ps, o2rep.ps, xc.ps,
xdslib.ps.
Moreover a TopSpeed Modula-2 like library implementation written in XDS Modula-2
is included with supply code: fio.def, fio.mod, fio.txt, io.def, io.mod, io.txt, lib.def, lib.mod,
lib.txt, mathlib.def, mathlib.mod, shtheap.def, shtheap.mod, shtheap.txt, str.def, str.mod,
str.txt, syserr.def, quantity.def, quantity.mod, xfilepos.sym. It’s accessible from XDS
Modula-2 and Oberon-2.
For extra data see
http://www.modulaware.com/xdsprod.htm.
Guide suggestion:
George Roche: “Free markets, free man: Frederic Bastiat, 1801-1850”, The Hillsdale
Faculty Press and The Basis for Financial Schooling, 1993. ISBN
0-916308-73-1. 181 pages.
This ebook is now troublesome to seek out.
Strive Laissez Faire Books or
Amazon.Com
Milton Friedman: “Capitalism and Freedom”. University of Chicago Press, Chicago and
London, 1962. 202 pages.
Winner of Nobel Worth in Economics.
This ebook is concerning the relation between financial and political freedom,
the issues related to centralised governments,
their management of cash, fiscal coverage, authorities managed
schooling, monopolies, redistribution of revenue, social welfare,
and final however not least about alleviation of poverty.
IMPRESSUM: The ModulaTor is an unrefereed journal. Technical papers are to be
taken as working papers and private quite than organizational statements.
Gadgets are printed on the discretion of the Editor based mostly upon his judgement on
the curiosity and relevancy to the readership. Letters, bulletins, and
different gadgets {of professional} curiosity are chosen on the identical foundation. Workplace of
publication: The Editor of The ModulaTor is Guenter Dotzel; he may be reached
by tel/fax: [removed due to abuse] or by
mailto:[email deleted due to spam]
Home
Site_index
Contact
Legal
Buy_products
OpenVMS_compiler
Alpha_Oberon_System
DOS_compiler
ModulaTor
Bibliography
Oberon[-2]_links
Modula-2_links
Webdesign by www.otolo.com/webworx,
02-Dec-1998