Microsoft will release a CTP (Community Technology Preview) of a new type of compiler its researchers have been building, code-named Project Roslyn, the company executive overseeing the C# programming language announced Thursday.
"This project is about revising what compilers do," said Anders Hejlsberg in a talk at Microsoft's Build conference, being held this week in Anaheim, California. "[It] is about opening the compiler and making all that information available so [the developer] can harness all of this knowledge," he said.
Roslyn is a compiler for C3 and Visual Basic with a set of APIs (application programming interfaces) that developers can use to fine-tune their code. It resembles a model developed by Miguel de Icaza's Mono Project, in which the information the compiler generates about a program can be reused as a library.
Today's commercial compilers are black boxes, Hejlsberg said. A compiler is a program that converts source code into binary executable program. Internally, a compiler generates a lot of information about the program it is building, he explained, although typically the developer doesn't have access to that data.
Roslyn can offer access to this data, Hejlsberg said. The data can then be used by Visual Studio to generate more options for programmers.
Developers could also use the output of such software to do tasks like refactor, or reorganize, their code more easily, to add C# and Visual Basic functionality to programs written in other languages. It also adds dynamic typing to the statically typed C# and Visual Basic, allowing developers to add objects and new variables to a program on the fly.
A compiler of this sort may offer programmers the ability to build more dynamic applications, noted attendee Michael Wolf, who is the principal architect for Microsoft technologies at enterprise software development firm Cynergy Systems. He also warned that the technology, if not well-understood, could pave the way to badly designed programs.
Hejlsberg demonstrated a few of the program's advanced functions. He showed off a command line interface that allows users to enter code that can be run directly against the compiler. Scripts can also be run against the compiler, which can be useful in generating information about a program being compiled.
He also demonstrated how Roslyn could convert Visual Basic code to C# code, and vice versa, much to the delight of the audience.
The CTP should be available in about a month or so, Hejlsberg said. He offered no time frame for when the software would be incorporated into Visual Studio IDE (integrated developer environment).