Compilers & related
The most of actual core developers of Phalanger project are in our company. All of them have strong academic background in automata theory, compilers, optimization and dynamic languages. Our specialization is domain of dynamic languages that can be interpreted, compiled or combination of both. Compilation of dynamic language is hard job, because behavior is known just at time of the execution, not during the compilation in contrast to the static languages. Hence, it needs robust and efficient runtime.
Implementing dynamic language compiler involves a lot from computer science and it needs continuous research. Basically we are involved in these areas:
- Microsoft Intermediate Language (MSIL) (.NET instructions)
- Code optimization
- Intelligent tests
- Syntactic and semantic analysis
- Integrated Development Environments (IDE)
- Interoperability methos between static and dynamic languages
- Adam Abonyi, Daniel Balaš, Miloslav Beňo, Jakub Míšek, Filip Zavoral:
Phalanger Improvements, Technical report 2009/5, Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague, 2009
- Jan Benda, Tomas Matousek, Ladislav Prosek:
Phalanger: Compiling and Running PHP Applications on the Microsoft .NET Platform, .NET Technologies 2006
Syntactic and Semantic Prediction for PHP Language Integration
Phalanger IntelliSense is an implementation of the language integration for Microsoft Visual Studio development environment. There are used own techniques for analyzing dynamic source code and offering possible completions of an expression to the user. The integration processes the PHP language code and integrates it with the .NET static assemblies.
The text prediction and source code analysis works well even for non static expressions without a need of execution.Based on practical experiences, resulting suggestions can cover most of developer’s common tasks.
- Jakub Míšek, Filip Zavoral:
Syntactic and Semantic Prediction in Dynamic Languages appears in the Proceedings of 7th ACIS International Conference on Software Engineering Research, Management and Applications, SERA 2009, Studies in Computational Intelligence, Springer Verlag, 2009
- Daniel Balaš, Jakub Míšek, Filip Zavoral:
Phalanger IntelliSense: Syntactic and Semantic Prediction appears in Informačné technológie – Aplikácia a Teória, ITAT 2009
- Jakub Míšek:
IntelliSense Implementation of a Dynamic Language, Charles University in Prague, 2009
Dynamic Language Runtime
The Microsoft .NET Framework was from the beginning designed to support broad range of languages on a Common Language Runtime (CLR). CLR provides shared services such as garbage collection, JIT and tools integration. The other benefit is that these languages can work together and use libraries written in any of them as well as .NET Base class library (BCL).
The CLR didn’t have the support for dynamic languages. Their dynamic nature makes the compilation uneasy and places high demands on the language runtime. Unlike static languages as C# which don’t require runtime support other than CLR itself.
The new Dynamic Language Runtime (DLR) makes a difference. It adds a lot of support for dynamic languages on .NET, that makes implementing the dynamic languages much easier and it also enables the interoperability between the dynamic languages built on DLR and standard static languages on .NET.
- Miloslav Beňo
Implementing the Dynamic Languages using DLR Technology, Charles University in Prague, 2010
Share this page
- Phalanger 3.0 updates for March 2013 March 6, 2013After several months of development, contributions from opensource community and collaboration with big commercial users, Phalanger is getting bigger. Today we’ve released package of Phalanger, containing many new extensions and latest integration for Visual Studio. New goodies in Phalanger Mainly … Continue reading → […]
- Announcing WP.NET May 23, 2012Phalanger was capable of compiling WordPress for quite a long time, but this support was always targeted at developer audience. Experienced developers could compile WordPress and run it on their servers. However, we noticed that the combination is interesting not only to developers, … Continue reading → […]