James.Callahan@CityofOrlando.net
2004-Jul-01 02:27 UTC
[R] .Net & Mono language news: C, C++, C#, Java, Python & Perl
For those interested in experimenting with (compiling / developing) a version of R for the Common Language Runtime (CLR) environment (Microsoft .Net, Novell Ximan Mono & DotGNU) -- a few links to some "free" compliers: C DotGNU (the official GNU project) http://dotgnu.org/ http://www.southern-storm.com.au/pnet_faq.html#q1_7 FAQ "1.7. What is pnetC? Since version 0.4.4 of DotGNU Portable.NET, the cscc compiler has had support for compiling C programs. The companion libc implementation for the C compiler is called 'pnetC'. The code is based on glibc." == C lcc -- lcc is a retargetable compiler for Standard C. lcc.NET, an lcc 4.2 backend for MSIL According to DotGNU "[MSIL] is exactly the same as CIL, but some media reports have called it 'MSIL' for some reason." http://www.cs.princeton.edu/software/lcc/ 1. "LCC 4.2 has been recently released. This release adds support for compiling ANSI C programs to CIL. Note that the CIL support only works on Win32 right now, but should be easy to convert to Mono/other architectures. " 2. "LCC is not an open source compiler, but it is free as long as you do not profit from selling it. " C# (C-sharp) Mono C# (version 1.0 released today) http://www.mono-project.com/using/relnotes/1.0.html == C++ Microsoft's C++ -- a "free" download (free as in beer) http://www.microsoft.com/downloads/details.aspx?FamilyId=272BE09D-40BB-49FD-9CB0-4BFA122FA91B&displaylang=en 1. "Visual C++ Toolkit 2003 The Microsoft Visual C++ Toolkit 2003 includes the core tools developers need to compile and link C++-based applications for Windows and the .NET Common Language Runtime ? compiler, linker, libraries, and sample code." 2. "The Visual C++ Toolkit is a free edition of Microsoft?s professional Visual C++ optimizing compiler and standard libraries ? the same optimizing compiler and standard libraries that ship in Visual Studio .NET 2003 Professional!" 3. "Are there any restrictions on how I use the Visual C++ Toolkit? In general, no. You may use the Toolkit to build C++ -based applications, and you may redistribute those applications. Please read the End User License Agreement (EULA), included with the Toolkit, for complete details." == FORTRAN No "free" news -- so I guess it is F2C. Lahey & Salford have commercial Fortran compliers. == JAVA (useful for Omegahat) IKVM - a CLR implementation of a language compatible with the Java syntax that be used with GNU Classpath and IBM Jikes http://www.ikvm.net/ == PERL PerlSharp http://taubz.for.net/code/perlsharp/ 1. "By Joshua Tauberer. PerlSharp is a .NET binding to the Perl interpreter. It allows .NET programs to embed Perl scripts and manipulate Perl data. Perl version 5.8.0 or later on a Unix-like system is required (thus you need Mono). " 2. "The current release was built on 4/11/2004. This is the first release, so I wouldn't place bets on it actually working out of the box. It is released under the GPL." == PYTHON Python.NET (from http://www.go-mono.com/languages.html#python) "Brian Lloyd is working on linking the Python runtime with the .NET runtime. More information on the PS.NET project " http://www.zope.org/Members/Brian/PythonNet http://zope.org/Members/Brian/PythonNet/README.html 1. "This package does not implement Python as a first-class CLR language - it does not produce managed code (IL) from Python code. Rather, it is an integration of the C Python engine with the .NET runtime. This approach allows you to use CLR services and continue to use existing Python C extensions while maintaining native execution speeds for Python code." 2. "While a solution like Jython provides 'two-way' interoperability, this package only provides 'one-way' integration. Meaning, while Python can use types and services implemented in .NET, managed code cannot generally use classes implemented in Python." 3. "Python for .NET is based on Python 2.3.2. Note that this is a change from the preview releases, which were based on Python 2.2." == also PYTHON -- Iron Python Jim Hugunin (author of JPython/Jython and Numeric Python/NumPy) is developing "IronPython: A fast Python implementation for .NET and Mono." http://ironpython.com/ == Note: According to DotGNU -- IL, CIL & MSIL all refer to "the bytecode format that is used to represent compiled programs" http://www.southern-storm.com.au/pnet_faq.html#q1_9 Why CLR? 1. Cross-language 2. Cross-platform (Mono, DotGNU) -- Linux, Windows & OS X 3. Database access -- ADO.Net & "Provider Factory" Mono ships with "support for Postgres, MySql, Sybase, DB2, SqlLite, Tds (SQL server protocol) and Oracle databases. " - Mono.Data.SqliteClient.dll: Sqlite database provider. - Mono.Data.SybaseClient.dll: Sybase database provider. - Mono.Data.TdsClient.dll: MS SQL server provider. - Mono.Data.Tds.dll: MS SQL server provider. - ByteFX.Data.dll: MySQL client access library (LGPL) - Npgsql.dll: Postgresql client access library (LGPL) http://www.mono-project.com/about/faq.html Jim Callahan Management, Budget & Accounting City of Orlando (407) 246-3039 office [[alternative HTML version deleted]]