Well, first things first: I’m not a footbal (soccer) fan, but must say congratulations to the Spaniards footbal team and their fans
for having won the Eurocup (read the news -Spanish- at El PaÃs and El Mundo, for example).
I, on my behalf, have something else to celebrate:
I’ve eventually released 1.0 version of the ZX Spectrum BASIC compiler. You can download it and give it a try, if interested.
If you’re having troubles either installing or using it, or suspect of a bug, please ask for help at the forum.
Posted by Boriel as Compilers at 11.08 pm
Put your comment »
Wow! My last post was two months ago!
What have I been doing meanwhile? Well, right now, besides attending my job
I’m attending the PhD course on Physics and Computer Science at Universidad de La Laguna.
My favorite subjects are, yes, you guess it, Parallel computing and Computer languages (Compilers, Language processors, etc…)
I’m currently programming a ZX Spectrum BASIC cross compiler in my (little) spare time. It’s entirely written in python, and almost finished (hope to release V1.0 this month). It’s a three stage retargeable compiler. The backend outputs Z80 code, so it should be easily portable to other Z80 micros such as AMSTRAD or MSX. Porting to other architectures, or even to .NET or Java it’s also possible by changing the backend module could also be implemented.
Regarding to the language, It’s not the ZX Spectrum original BASIC but a dialect very close to FreeBasic which allows function definitions and more complex control-flow structures. The URL contains an almost complete specification, although not all of them has been implemented in the ZX for obvious reasons.
Some features:
Function definitions with local variable scopes and parameters by reference or value Multidimensional arrays of any data type Strings passed by value or reference Dynamic memory heap Inline ASM code Completely extensible with your own functions
You can download current alpha builds or visit the forum for suggestions, comments, etc.
Update: I’ve just finished it! Visit the compiler page for more information.
Posted by Boriel as Compilers, Computer Science at 8.06 pm
5 Comments »
Actually, this isn’t recent news, since GCC supports OpenMP since version 4.2.0 (released on May, 2007). The interesting thing is that it’s being considered really stable and mature now; on the other hand, a new 4.3.0. branch is about to come. So we’ll soon see OpenMP support in our favourite Linux distro
(it seems Fedora might already have included GCC 4.2.0 with OpenMP support already).
Previously, OpenMP support was done in GCC though the use of GOMP (an OpenMP library), but it has been finally merged into the developing mainline of this compiler collection (yes, Fortran have it too). 
The specification implemented is OpenMP 2.5 (there’s a 3.0 draft on the way), and it seems to be completely supported, as you might read at the GCC Open MP features document.
Posted by Boriel as Parallel Computing, Compilers, Computer Science at 7.26 pm
1 Comment »
During these last months I’ve been developing, just for fun and in my *very* little spare time, my own compiler kit tool.
More than a compiler, it’s a tool for building up compilers (there are others over there, like Lex & Yacc, Flex & Bison in its GNU flavour). Mine is called Bparser.
I’ve put it in my wiki, just in case anybody want to give it a glance.
My tool is better than the LEX & YACC couple in the sense it can parse LR(n) grammars whilst LEX/Yacc only parses LALR ones. It uses a Lookahead and mangle-likes estructures to take some decisions when choosing which grammar rule to use for reduction.
If it eventually cannot decide which rule should be used, it will start to backtrack to find out the rule to apply.
This tool allows ambiguos grammars, so it is very similar to a GLR parser. BISON (GNU’s YACC) can also use the GLR algorithm, but it is less efficient and can take exponential space/time to parse some entries depending on the given grammar.
Read the rest of this entry »
Posted by Boriel as Compilers, Computer Science, Programming at 12.05 pm
4 Comments »