Added section on Nemerle, per request from Kamil Skalski.
[mono.git] / web / 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                 * <a href="#dotlist">dotLisp</a>
13                 * <a href="#nemerle">Nemerle</a>
14         </ul>
15
16         Languages which are known to run, but we have not done a
17         complete ran of all their regression tests to validate it:
18
19         <ul>
20                 * Kylix.NET.
21         </ul>
22
23         Languages we would like to have supported, with links to resources:
24
25         <ul>
26                 * <a href="#JavaScript">Java Script</a>
27                 * <a href="#java.html">Java</a>
28                 * <a href="#c">C</a>
29         </ul>
30
31         Some experimental languages:
32
33         <ul>
34                 * <a href="#Tachy">Tachy</a> (scheme-like)
35                 * <a href="#python">Python</a>
36         </ul>
37
38 <a name="Java"></a>
39 ** Java
40
41         There is a very interesting project to make a JavaVM for .NET
42         <a href="http://radio.weblogs.com/0109845/">here</a>.
43
44         Zoltan has got IKVM to work with Mono.
45
46 <a name="PHP">
47 ** PHP
48
49         Sterling has code to allow PHP developers to use Mono code, in
50         his <a href="http://www.php.net/~sterling/mono/">site</a>
51
52 <a name="MonoLogo">
53 ** MonoLogo
54
55         An implementation of Logo for Mono (and .NET)
56
57         The <A href="http://monologo.sf.net">Mono Logo</a> compiler is
58         hosted in the <a href="ccvs.html">Mono CVS</a> repository
59         and also available on the <a href="anoncvs.html">AnonCVS</a> mirrors.
60
61 <a name="mbas">
62 ** Mono Basic (Mono's VB.NET compiler)
63
64         Work has resumed on the Mono Visual Basic compiler (currently
65         called mbas).  It is part of the standard Mono distribution,
66         but its still an early compiler.
67
68 <a name="Oberon">
69 ** Oberon
70
71         This Oberon compiler is written in Oberon.NET (another self
72         hosting compiler).
73
74         The main site <a href="http://www.oberon.ethz.ch/oberon.net/">http://www.oberon.ethz.ch/oberon.net/</a>
75
76         Download:
77         <a href="http://www.oberon.ethz.ch/oberon.net/download/">http://www.oberon.ethz.ch/oberon.net/download/</a>
78
79         Examples:
80         <a href="http://www.oberon.ethz.ch/oberon.net/examples/">http://www.oberon.ethz.ch/oberon.net/examples/</a>
81
82 <a name="ComponentPascal">
83 ** Component Pascal
84
85         The Component Pascal compiler: <a
86         href="http://www.citi.qut.edu.au/research/plas/projects/cp_files/cpnet.html">Home
87         Page</a>, you can <a
88         href="http://www.citi.qut.edu.au/research/plas/projects/cp_files/cpdownload.html">
89         download it</a>
90         
91 <a name="Forth">
92 ** Delta Forth
93
94          The Delta Forth.NET project: <a href="http://www.dataman.ro/dforth">Home
95          Page</a> and <a href="http://www.dataman.ro/dforth">more
96          details here</a>.
97          
98
99 <a name="Tachy">
100 ** Tachy
101
102         A subset of Scheme language called <a
103         href="http://radio.weblogs.com/0101156/stories/2002/03/19/tachy.html">Tachy</a>
104
105 <a name="Python"></a>
106 ** Python
107
108         <a href="mailto:brian@No.Spam.zope.com">Brian Lloyd</a> is
109         working on linking the Python runtime with the .NET runtime.
110         More information on the PS.NET project can be found <a
111         href="http://www.zope.org/Members/Brian/PythonNet">here</a>.
112
113 <a name="dotlisp"></a>
114 ** dotLisp
115
116         DotLisp is available from: <a
117         href="http://sourceforge.net/projects/dotlisp/">http://sourceforge.net/projects/dotlisp/</a>
118
119 <a name="JavaScript">
120 * Java Script
121
122         Cesar is working on Mono's implementation of JScript, the code
123         is available on CVS on module `mcs'.
124
125 <a name="nemerle">
126 * Nemerle
127
128         Nemerle is a new hybrid (functional, object-oriented and
129         imperative) programming language for the .NET platform. It is
130         available from <a
131         href="http://www.nemerle.org/">http://www.nemerle.org</a>.
132         
133 * Missing languages
134
135         Here is a list of a few languages that we would like to see
136         supported.  We will try to maintain a set of links here with 
137         technical information for those interested in porting,
138         implementing or adapting a compiler for any of these
139         languages:
140
141 <a name="c">
142 * C
143
144         Ideally GCC could be modified to generate CIL, but it is a 
145         big task.  That would give us various compilers in one pass.
146
147         <a href="http://www.cs.princeton.edu/software/lcc">LCC</a> 4.2
148         has been recently released.  This release adds support for compiling
149         ANSI C programs to CIL.  Note that the CIL support only works on Win32
150         right now, but should be easy to convert to Mono/other architectures.
151
152         LCC is not an open source compiler, but it is free as long as you
153         do not profit from selling it. 
154
155 <a name="ada"></a>
156 * ADA
157
158         A# is an ADA compiler for the CIL platform, it can be downloaded from:
159         <a
160         href="http://www.usafa.af.mil/dfcs/bios/mcc_html/a_sharp.html">http://www.usafa.af.mil/dfcs/bios/mcc_html/a_sharp.html</a>
161
162 <a name="Java">
163 * Java
164
165         Java bytecode can run directly on Mono using the <a
166         href="http://www.ikvm.net">IKVM</a> java virtual machine for
167         .NET.
168
169         We have a <a href="java.html">separate page</a> for Java.
170
171