Article: Domain Specific Languages in Erlang
Erlang is mostly known for reliability and for its concurrency and scalability concepts. But did you know that Erlang is a language well suited for writing DSLs?
In this article, Dennis Byrne guides you through a case study of creating a internal Domain Specific Language in the Erlang language.
From the article:
People are talking about Erlang. This talk is disproportionately about concurrency rather than any of the other powerful properties of the platform, such as reliability. This article is about a property of Erlang which does not get the credit it deserves - Erlang is a fantastic workbench for Domain Specific Languages. The domain I have chosen is investment finance. You will see how easy it is to translate plain English at runtime and execute it in the Erlang Runtime System. You may also learn a thing or two about functional programming.
Sounds interesting? Read the full article on Domain Specific Languages in Erlang.
However, there're some typos:
. "Rule >- Rules" should be "Rule <- Rules"
. "people with think twice" should be "people will think twice"
Memory leak when create function?
Is it safe to create function run time? Just as atom, if too many atoms, the VM can crash because out of memory. Can ErLang VM clean up funs which no longer required?
Thanks a lot.
Re: Memory leak when create function?
You cannot remove function in runtime directly, but with hot code update feature you can do so. But again, if you need it during program run - you should again think about program design.
Putting it all together, I must say that Erlang is a perfect and very predictable platform for building huge scalable systems for huge load.
Martin Thompson Jul 27, 2014