Category Archives: AjLisp

End Of Iteration 2014w03

Previous Post
Next Post

Great week extending interpreters.


My Erlang implementation as interpreter in C#

I added multi-functions, that is, functions with the same name and arity, but with different argument matching conditions. And I started to write a minimal Process, to have threads running functions. Next steps: implement process mailboxes.


I was working on my C# implementation

I started to add Java Dot Notation, to access native types and objects. So, I grabbed some code from RubySharp/PythonSharp/AjSharp to access .NET types and objects, and wrapped functions to invoke properties, methods and constructors.


More work on implementing Akka-like actor model in C#

I should refactor mailbox implementation. After a bit of design, I decided to have a worker thread by actor, consuming a concurrent queue. ActorRef could add message to the queue.

RuScript, ScaScript and SimpleGrammar

I updated the version of SimpleGrammar

to fix a bug detected consuming the library from RuScript:

I’m using SimpleGrammar in

my Scala-like interpreter in JavaScript (I just implemented only a minimal parser).


I was working in two non-public projects, and updating old PHP personal sites. I moved the code generated for Sinatra

to use a modular instead of classic approach.

More fun is comming.

Keep tuned!

Angel “Java” Lopez

End Of Iteration 2013w51

Previous Post
Next Post

My main outcome for this week:


I was working on my Erlang interpreter written in C#:

I improved the match algorithm, incorporating more use cases and resolving them using Test-Driven Development. The REPL is working:

Other works

I updated my PHP projects, removing old short tags notation:

I refactor internal implementation of:

I worked on three non-public projects.

Keep tuned!

Angel “Java” Lopez

End Of Iteration 2013w50

Previous Post
Next Post

After a series of weeks preparing talks, this week was the exception. No talk, no course to prepare or give. So, I could dedicate the time to code!


I started to refactor the code:

Past week, I migrated the tests to simpleunit. Now, I was splitting a big module in submodules/files, and refactoring the tests to use those modules. I should complete the compilation for browser: the reason to have only one big file was to easy use from browser. Now, I now how to “browserfy” my code.


My Erlang interpreter written in C#:

Past week I added arithmetic operations. Now, I improved the internal implementation, have a better matching, and added more arithmetic operations.

I was working on removing short tags from my PHP projects and

I also worked on three non-public projects, in C#. More fun is coming.

Keep tuned!

Angel “Java” Lopez

End Of Iteration 2013w27

Previous Post
Next Post

An intense week ended. I worked on:


A new implementation of my lisp interpreter, this time trying to compile to JavaScript.


Minor fix, a missing reference in solution without test. Now, it compiles with msbuild from the command line


Minor updates, to be ready for my Sunday post (Spanish)


Only the first test and implementatio (parse an integer, a variable), but I was invited by @mgiglesias to give a talk at PHP Conferences 2013, Argentina. Big people are coming, and great speakers. I will give a talk about PHP and Node.js, for example, calling Node.js from PHP. One thing I want to show, is a PHP compiler to JavaScript that runs on Node.js/Express. It’s using my SimpleGrammar project, from the source.


Minor addition: the capacity of parsing a word, like ‘for’, ‘while’.


Good progress. Having a recursive parser, guided by rules, defined by C# code. All is in place, I need to add a bit of tweaks. I could publish it as Nuget package. But first, I should write same samples. And dog fooding: use it in my own projects.


I updated my in-memory cube. Then, I switched to a customer private project.

AjLisp in Python

Lisp interpreter in Python, only a minor addition, define special form with test.

Talk Introduction to Python

I gave a talk at local Microsoft User Group (Buenos Aires) about Python. My slides:

Work in progress:

More JavaScript, Node.js, Python, Ruby, C# work is coming.

Keep tuned!

Angel “Java” Lopez