Build Your Own

Programming Language with JavaScript

/* author: Zach Carter */

Every program is an interpreter.

...but some interpret other programs!

(program = data)

Parser (syntax) ↓ Semantic analysis ↓ Code Generation or Interpreter

Parser (syntax) ↓ Semantic analysis ↓ Code Generation or Interpreter

Parser generators! OMeta-JS Jison PEG.js JS/CC

Parser generators! OMeta-JS Jison PEG.js JS/CC

Parser generators! OMeta

:D

Jison PEG.js JS/CC

First, we need a grammar.

ECMA-262 5th Edition 15.12.1.2

Build the Parser Live demo!!

(demo code generation)

Instead of codegen...

metacircular evaluator FTW

jsonic - a homoiconic language

Pa

the end.

@zii

Links http://azarask.in/projects/algorithm-ink/ http://processingjs.org http://coffeescript.org http://jison.org http://tinlizzie.org/ometa-js/ http://pegjs.majda.cz/ http://github.com/zaach/jsonic http://mitpress.mit.edu/sicp/full-text/book/book.html http://www.softwarepreservation.org/projects/LISP/b ook/LISP%201.5%20Programmers%20Manual.pdf

Build Your Own Programming Language with JavaScript - GitHub

Build Your Own. Programming Language ... Parser generators! OMeta-JS. Jison. PEG.js. JS/CC ... ook/LISP%201.5%20Programmers%20Manual.pdf.

325KB Sizes 7 Downloads 111 Views

Recommend Documents

The Ruby Programming Language - GitHub
You'll find a guide to the structure and organization of this book in Chapter 1. ..... Determine US generation name based on birth year ...... curly braces: "360 degrees=#{2*Math::PI} radians" # "360 degrees=6.28318530717959 radians" ...... of comput

Build Your Own Search String - 21cLiteracies Wiki
Sometimes the best way to find information is to search for two or more ... Build Your Own. Search ... Using a site operator as a term in your search string will give.

Build Your Own BeLoved Meal.pdf
Classic Vinaigrette Lemon Balsamic Mediterranean Roasted Garlic. Peanut Lime Orange Honey Cilantro Lime Asian Sesame. ORG = Dirty Dozen PlusTM.

Parallelize JavaScript Computations with Ease - GitHub
It abstracts the messaging-based programming model for a seamless .... difference of Threads.js is its messaging-based programming model that is ...... upload/208631.pdf (visited on 11/20/2016). [16] Microsoft. ... license.php. [26] npm Inc.

Polyglot Build System With Build Artifact Repository - GitHub
Maven Repository: The build artifact repository layout introduced in Maven 2. ... (Details at: http://ant.apache.org/ivy/history/latest-milestone/resolver/url.html).

JavaScript Crash Course - GitHub
Nov 10, 2016 - 1Info on this slide from: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures ..... Google (you are smart, figure it out).