Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Haskell
Wiki community
Recent changes
Random page
HaskellWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Yhc/Erlang/Proof of concept
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Core Erlang overview=== The [http://www.it.uu.se/research/group/hipe/cerl/ Core Erlang initiative] project is a "collaboration between the [http://www.it.uu.se/research/group/hipe/ High-Performance Erlang (HiPE)] project at the Department of Information Technology of Uppsala University, and Ericsson's OTP/Erlang developers". [http://www.it.uu.se/research/group/hipe/cerl/doc/core_erlang-1.0.3.pdf Core Erlang] is an intermediate form of Erlang source compilation. It provides a desugared (compared to Erlang) syntax of a strict functional language. Erlang source may be compiled to Core Erlang, and Core Erlang may be compiled to BEAM bytecode. Core Erlang plays the same role in the Erlang compilation process as [[Yhc/API/Core|Yhc Core]] in the Haskell (Yhc) compilation process. So, it turns out to be the most convenient to do the conversion between these formats rather than between e. g. Haskell source and Erlang source. There was an [http://blog.tornkvist.org/blog.yaws?id=1190846785574003 attempt] made earlier to do similar things, only converting from Haskell source (indeed, a subset of Haskell syntax) to Core Erlang. This project is called '''Haskerl''', developed by Torbjörn Törnkvist, (not to be confused with [http://www.dcs.gla.ac.uk/~partain/haskerl.html Will Partain's Haskerl]). Some [http://www.tornkvist.org/darcsweb source code] from Haskerl was used in this experiment, in particular, the definition of an algebraic data type to represent Core Erlang internally, and the pretty printer module for Core Erlang, both with some necessary extensions. The whole compilation chain looks like this: # Haskell source modules are compiled into Yhc Core and linked; # Some overall program optimizations (functionality provided with the [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/yhccore Yhc Core library]) are performed on the linked Yhc Core; # Yhc Core is converted to Core Erlang; # The [http://linux.die.net/man/1/erlc Erlang compiler] erlc produces a BEAM file.
Summary:
Please note that all contributions to HaskellWiki are considered to be released under simple permissive license (see
HaskellWiki:Copyrights
for details). If you don't want your writing to be edited mercilessly and redistributed at will, then don't submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
DO NOT SUBMIT COPYRIGHTED WORK WITHOUT PERMISSION!
Cancel
Editing help
(opens in new window)
Toggle limited content width