5

I prefer Haskell.

I already know How to create my own language with Procedural Language (for example: C, Java, Python, etc).

But, I know How to create my own language with Functional Language (for example Haskell, Clojure and Scala).

I've already read:

Internet Resources

  1. Write Yourself a Scheme in 48 Hours
  2. Real World Haskell - Chapter 16.Using Persec
  3. Writing A Lisp Interpreter In Haskell
  4. Parsec, a fast combinator parser
  5. Implementing functional languages: a tutorial

Books

  1. Introduction Functional Programming Using Haskell 2nd Edition -- Haskell

StackOverflow (but with procedural language)

  1. Learning to write a compiler
  2. create my own programming language

Source

  1. Libraries and tools/HJS -- Haskell

Are there any other good links/sources? I would like to get some more.

Community
  • 1
  • 1
esehara
  • 191
  • 7
  • 1
    Just a question, but why would you want to create your own programming language? What is this for? – gadgetmo Nov 16 '11 at 17:35
  • 2
    Could you explain what your question is? I see a bunch of links, but no real question. – Blender Nov 16 '11 at 17:37
  • 2
    @Blender It seems that he wants to get more links. – fuz Nov 16 '11 at 17:41
  • http://meta-alternative.net/calc.pdf – SK-logic Nov 16 '11 at 18:37
  • 1
    What are you looking for that these articles don’t give you? I think *Write Yourself a Scheme in 18 Hours* and *Implementing Functional Languages* together are more than adequate to show you how to efficiently implement whatever functional language you care to think up. – Jon Purdy Nov 16 '11 at 19:11

3 Answers3

4

Programming Languages: Application and Interpretation is frequently used in programming language classes, and is available online for free. It uses Scheme.

Types and Programming Languages is another incredible book dealing with type systems (including implementation), though only available in dead tree format. It uses ML (which represents a significant family of functional languages that I noticed was missing from your list).

Racket (formerly called PLT Scheme) is a functional language that emphasizes making your own sub-language.

Dan Burton
  • 53,238
  • 27
  • 117
  • 198
3

read also:

I also think that Jacques Pitrat's latest book Artificial Beings - the conscience of a conscious machine will give you very interesting insights.

Basile Starynkevitch
  • 223,805
  • 18
  • 296
  • 547
0

Take also a look at Compiler.HOOPL and Control.Unification libraries, and uuagc attribute grammar preprocessor. You also can read https://wiki.ittc.ku.edu/lambda/images/e/e3/Modular-interpreters.pdf on writing modular interpreters in Haskell. Also note that Parsec is not very fast and for non-toy projects Happy/Alex may be suited better.

nponeccop
  • 13,527
  • 1
  • 44
  • 106