- Created: 19 October 2015
Some people have asked us how we are going to write our compiler, and if that is not very complicated.
The honest answer to that question is that it is indeed very complicated, but we use tools to help us doing it, which makes it a little bit easier.
In my previous blog article I have described how we are using the Roslyn infrastructure for a large part of our compiler, and that “all” we have to do is to create a recognizer for our language.
In this article I would like to elaborate a little bit about the language recognition part.
For our language recognition we are using a tool called ANTLR (Another Tool for Language Recognition), written by Terence Parr, a professor from the University of San Fransisco.
This tool allows us to generate a major part of the language recognizer from language definition files. This language definition roughly consist of 2 elements:
- Tokens. These are the sequences of characters that form the Keywords, Identifiers, Constants (Strings, Integers, Floats, Symbols etc.) comments and whitespace in our language.
- Rules. These are the sequences of tokens that form our language.
From this definition the Antlr tool generates classes:
- A Lexer class that scans the source code and builds a list of tokens (the tokenstream)
- A Parser class that uses the rules and scans for the patterns from the language elements. This builds the Parse Tree.
- Created: 13 October 2015
Some people have asked us if we have lost our mind. And that is a very good question:
What they mean is that writing a compiler from scratch is a hell of a job and will take a lot of time.
But we are not writing a compiler from scratch
So we have NOT lost our mind. Let me explain that a little bit:
Early 2015 Microsoft has published the source code for its C# and VB compiler. This is called the Roslyn Project.
Since this source code is licensed under the Apache 2.0 Open Source license we can use and change this code to create our X# compiler.
That means the the biggest part of the code in our compiler has been developed by the geniuses at Microsoft and has been tested by hundreds of thousands of developers all over the world. That is a HUGE benefit for our project.
So it is easy then?
No it is still not easy to write the compiler but a lot of work has already been done.
The following image displays a compiler in a schematic way:
- Created: 25 September 2015
At the Devshare conference in Newent UK Robert van der Hulst has presented the new XSharp Development team:
- Fabrice Foray
- Nikos Kokkalis
- Robert van der Hulst
- And others that want to remain anonymous (for now)
- Created: 09 September 2015
At the DevShare conference in Newent UK, Robert van der Hulst has presented the new XSharp project to the world.
- Created: 28 September 2015
We’ve built it – we can make it better!
Epe: September 28 2015.
We have just returned from a VERY successful DevShare Conference in the UK. Many thanks go to Phil Hepburn, Mike Bertenshaw, Dai Darkin and their spouses Sue and Sue for organizing this great event.
Our new XSharp initiative has received as very warm welcome at the conference, but also raised many questions. We would like to take the opportunity to repeat and answer the most common and most important question over here:
Why do you want to introduce a new compiler / competitor for a small market as Vulcan.NET?
- Created: 26 September 2015
The announcement of te X# project has led to quite a lot of response.
Some people have asked questions about the availability of the product, others have asked questions about the features etc.
We have uploaded the presentation that Robert van der Hulst has done on the DevShare conference to help answer some of these questions.
Please click here to download the presentation.
- Created: 21 July 2016
Last week I was on a holiday with my family in Normandy in France.
Some of the touristic highlights that we visited were of course the D-Day beaches Omaha, Utah, Juno, Gold and Sword where the allied forces started the liberation of the Northern part of Europ on June 6, 1944.
Near those beaches we also visited the war cemetaries where thousands of solders from the US, Britain, Canada and other countries were buried. This was very impressive as you can imagine.
The thought about these (mostly) young men that have given their lives to help liberate Europe, makes you feel very grateful and sad at the same time. You know that each person has left behind parents, or wife and children who have had to miss their loved sons or husbands and fathers.
At the same time the number of casualties was of course much smaller than the number of people that were killed by the occupiers. Compared to these numbers, the number of deceased allied soldiers was relatively low.
This reminded me of the famous quote from Spock in Vulcan "The needs of the wany outweigh the needs of the few, or the one".
I am sure that these soldiers and their families did not have something like that in mind, but I am glad that the allied leaders have chosen to liberate Europe, even when they could know that this would mean serious losses of allied lives.
- Created: 15 August 2016
We are pleased to announce that we have released XSharp Beta 6 to our subscribers today.
This build contains many improvements in the VO/Vulcan compatibility area. A selection from these changes:
- Added support for compile time codeblocks
- Added support for all kinds of Aliased Expressions (useful with RDD based data access)
- Added support for VO Compatible string comparisons
- Indexed properties can now be used by name (String:Chars for example)
- Indexed properties can now be defined with overloads with different parameter types (int and string for example)
VO and Vulcan support is nearing completion!
Some new features in this build
- Added a new syntax to define EVENTS (with ADD and REMOVE keywords)
- Completed the support for the .Designer.prg for windows forms inside visual studio
- X# now properly works side by side with the Vulcan project system inside Visual Studio. We no longer "steal" the language service from Vulcan projects
- Performance improvements in the source code editor for large files
This new build is available for download for FOX subscribers on the FOX download page on this website.
- Created: 26 September 2016
Last year in the last week of September we have announced XSharp at the DevShare conference in the United Kingdom.
One year later XSharp is no longer a promise but a full blown product!
We are pleased to announce that we have released XSharp Beta 7 both to our FOX subscribers and to the general public today.
XSharp Beta 7 is a major step forward, especially compared to Public Beta 1 from February 2016.
Many new features have been added to the product, and major steps have been made to make X# compatible with Visual Objects and Vulcan.NET.
This version has almost all of the features that are needed to compile Vulcan.NET applications.
We still call this version a Beta version because it misses a very small number of features to compile your Vulcan applications, but the quality of the product is not Beta software at all but Release quality.
Now is a great time to look at XSharp and to test your VO and Vulcan code with XSharp.