• If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!



Page history last edited by Joel Galenson 14 years, 1 month ago

CS164: Hack your language!


We will design and implement our own programming language and language extensions. To do so, we will learn about foundations of programming languages and implementation techniques. 


Announcements: subscribe to the RSS feed of this page or check it regularly.

Lecture, Sections, Projects: subscribing to changes on this page will tell you when projects, slides and other materials have been posted.

Calendar: includes office hours and due dates (a public Google calendar).

Newsgroup: ask your questions here.  For instructions on how to view the newsgroup, see http://inst.eecs.berkeley.edu/connecting.html#news.


Instructors: Ras Bodik and Joel Galenson.  Contact info and office hours




     First Midterm: Oct 20

     Second Midterm: Dec 3 (80 minutes)

     Final Project Demo and Posters: Dec 19, 12:30-3:30, Soda Hall, 6th floor hallway




  • Project 1: intro to web programming

    • Metaprogramming, regexes, DOM, event-driven pming
  • Project 2: build your parser and write applications (3 weeks)

    • google calc to AST; HTML to DOM
    • simple DOM layout ==> gives us a scriptless browser
  • Project 3: design and implement a small language (3 weeks)

    • Dynamically typed, a’la Python, Scheme, Ruby, Lua, …
    • add some constructs for extending the language
    • application: embed a simple DSL
  • Project 4: static analysis, static typing and compilation (2 wks)

    • compile rather than interpret; needs static analysis for that
  • Project 5: your own language (4 weeks)

    • or implement what we propose


Approximate grading breakdown:


Projects: 50% (5, 10, 10, 10, 15)

Homeworks: 15%

Exams: 35% (the two midterms will be weighed equally)


This scale may well be changed, but it hopefully gives an approximate idea of how grades will be calculated.


The weights currently on glookup do not reflect the various weights of the assignments.  Specifically, the extra credit will be worth more than a tiny fraction of the projects.


Other useful links:


For questions on the waitlist, email Michael-David Sasson (msasson@cs.berkeley.edu).


Roster: students taking the course (requires CalnetId login)   


Comments (0)

You don't have permission to comment on this page.