[erlang-questions] concurrency developments
Thu Jan 17 22:43:10 CET 2008
On 17/01/2008, Richard Carlsson <richardc@REDACTED> wrote:
> This page has the most up-to-date Core Erlang specification,
> and some info on how to compile to/from Core source code:
> The Core Erlang representation is an important intermediate
> step for the BEAM compiler, and the HiPE compiler can generate
> native code directly from Core Erlang as well as from BEAM.
Have missed those papers, they're quite readable. The only bit which is
missing is a description of the binary/bitstring parts.
If you are going to compile to Core then you need the following files as
Core_parse.hrl contains the record definitions of the AST of Core and
together with appendix C "Syntax tree representation" (in the 1-0-3 paper)
give a description of how to build Core code in abstract form. Then it's
just core_lint it to be sure and run it in to the back-end of the compiler
to generate module. Works really well.
The list of annotations are just annotations but some have special meaning,
especially a first anno in the list of an integer which is taken to be the
line number and used in core_lint error messages.
The best way to truly understand how it all fits together is to generate
core code "c(foo,[report,to_core])" and stare at it a bit. Most becomes
Guards can be a little tricky.
One major benefit of compiling to core, apart from it being a nice little
language, is that you get some significant optimisations done for you in the
back-end. A major one is the pattern-matching compiler which works on core
code. This is a Big Win and while not really hairy code can be tricky to get
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions