2003-01-10 Duncan Mak <duncan@ximian.com>
[mono.git] / doc / languages
1 * Compilers for other languages
2
3         Here are some other free compilers for other languages that
4         target .NET and should work with Mono with no problem:
5
6         <ul>
7                 * <a href="#ComponentPascal">Component Pascal</a>
8                 * <a href="#MonoLogo">MonoLogo</a>
9                 * <a href="#Oberon">Oberon</a>
10                 * <a href="#Forth">Forth</a>
11                 * <a href="#mbas">Mono Basic</a> (Mono's VB.NET compiler)
12         </ul>
13
14         Languages which are known to run, but we have not done a
15         complete ran of all their regression tests to validate it:
16
17         <ul>
18                 * Kylix.NET.
19         </ul>
20
21         Languages we would like to have supported, with links to resources:
22
23         <ul>
24                 * <a href="#JavaScript">Java Script</a>
25                 * <a href="#java.html">Java</a>
26                 * <a href="#c">C</a>
27         </ul>
28
29         Some experimental languages:
30
31         <ul>
32                 * <a href="#Tachy">Tachy</a> (scheme-like)
33         </ul>
34
35 <a name="Java">
36 ** Java
37
38         There is a very interesting project to make a JavaVM for .NET
39         <a href="http://radio.weblogs.com/0109845/">here</a>.
40         Currently this will not work with Mono, as they use some
41         pieces of Managed C++ to implement the JNI interface.
42
43         A workaround has been discussed, contact the author if you want to contribute. 
44
45 <a name="MonoLogo">
46 ** MonoLogo
47
48         An implementation of Logo for Mono (and .NET)
49
50         The <A href="http://monologo.sf.net">Mono Logo</a> compiler is
51         hosted in the <a href="ccvs.html">Mono CVS</a> repository
52         and also available on the <a href="anoncvs.html">AnonCVS</a> mirrors.
53
54 <a name="mbas">
55 ** Mono Basic (Mono's VB.NET compiler)
56
57         Work has resumed on the Mono Visual Basic compiler (currently
58         called mbas).  It is part of the standard Mono distribution,
59         but its still an early compiler.
60
61 <a name="Oberon">
62 ** Oberon
63
64         This Oberon compiler is written in Oberon.NET (another self
65         hosting compiler).
66
67         The main site <a href="http://www.oberon.ethz.ch/oberon.net/">http://www.oberon.ethz.ch/oberon.net/</a>
68
69         Download:
70         <a href="http://www.oberon.ethz.ch/oberon.net/download/">http://www.oberon.ethz.ch/oberon.net/download/</a>
71
72         Examples:
73         <a href="http://www.oberon.ethz.ch/oberon.net/examples/">http://www.oberon.ethz.ch/oberon.net/examples/</a>
74
75
76         <a href="http://www.superin.formativ.net/mono/oberon/oberon.zip">http://www.superin.formativ.net/mono/oberon/oberon.zip</a>
77
78 <a name="ComponentPascal">
79 ** Component Pascal
80
81         The Component Pascal compiler: <a
82         href="http://www2.fit.qut.edu.au/CompSci/PLAS/ComponentPascal">Home
83         Page</a>, you can <a
84         href="http://www2.fit.qut.edu.au/CompSci/PLAS/ComponentPascal/gpcp1.1.4-netRTM.zip">
85         download it</a>
86         
87 <a name="Forth">
88 ** Delta Forth
89
90          The Delta Forth.NET project: <a 
91          href="www.dataman.ro/dforth">Home
92          Page</a> and <a href="http://www.dataman.ro/dforth/index.html">more
93          details here</a>.
94          
95
96 <a name="Tachy">
97 ** Tachy
98
99         A subset of Scheme language called <a
100         href="http://radio.weblogs.com/0101156/stories/2002/03/19/tachy.html">Tachy</a>
101
102 * Missing languages
103
104         Here is a list of a few languages that we would like to see
105         supported.  We will try to maintain a set of links here with 
106         technical information for those interested in porting,
107         implementing or adapting a compiler for any of these
108         languages:
109
110 <a name="JavaScript">
111 * Java Script
112
113         The Mozilla project has an implementation of JavaScript
114         written in Java called <a
115         href="http://www.mozilla.org/rhino/">Rhino</a>.
116
117         You could port this code from Java to C#.
118
119         Note that since JavaScript allows for evaluation at runtime,
120         the compiler has to be built as a class that can be invoked at
121         runtime.
122
123 <a name="c">
124 * C
125
126         Ideally GCC could be modified to generate CIL, but it is a 
127         big task.  That would give us various compilers in one pass.
128
129         <a href="http://www.cs.princeton.edu/software/lcc">LCC</a> 4.2
130         has been recently released.  This release adds support for compiling
131         ANSI C programs to CIL.  Note that the CIL support only works on Win32
132         right now, but should be easy to convert to Mono/other architectures.
133
134         LCC is not an open source compiler, but it is free as long as you
135         do not profit from selling it. 
136
137 <a name="Java">
138 * Java
139
140         We have a <a href="java.html">separate page</a> for Java.
141
142