EDDI 0.4 : Native compilation and swap operator

The version 0.4 of EDDI is released.

There is only one new feature, the swap operator () to swap two variables together, but the biggest news is that now EDDI is not anymore an interpreted language, but is a compiled language.

In fact, I rewritten the compiler in order to output Linux assembly code. For now the code is only 32 bits, but I plan to support 64 as well. I made that change in order to not having to write a virtual machine and in order to learn assembly as well. The current outputted assembly code is not really optimized and there will certainly be a lot of changes. Indeed, in order to simplify the switch to native compiler, I continued using stack operations, so that the numeric computations have a lot have a lot of stack operations in it. Moreover, I'm far from being a professional in assembly, so that, they can beginner's errors in the generated code.

I use as to compile the assembly and then gcc to link. I will try to not depend on gcc, but it seems to be difficult if I want to use malloc (used for the string concatenation).

You can download the sources and find some information on the GitHub repository : https://github.com/wichtounet/eddic/ (check the tag v0.4 if you want the exact version I refer in this post).

Do not hesitate to send me your comments about the C++ code, the design or the outputted assembly.

The first version will see loops integrated, certainly some assembly optimizations and some code refactorings I planned.

Related articles

  • EDDI 0.4.1 : Loops and better assembly generation
  • eddic 0.5.1 : Better assembly generation and faster parsing
  • Introduction to 64 Bit Intel Assembly Language Programming for Linux - Book Review
  • EDDI : A new programming language project
  • EDDI 0.2.1 : Integer operations and optimizations
  • EDDI 0.3 - Branches and conditions if, else if, else
  • Comments

    Comments powered by Disqus