Search This Blog

Programming Languages and Translators

Programming Languages and Translators
Stephen A. Edwards

Overview

The goal of PLT is to teach you both about the structure of computer programming languages and the basics of implementing compilers for such languages.

The course will focus mostly on traditional imperative and object-oriented languages, but will also cover functional and logic programming, concurrency issues, and some aspects of scripting languages. Homework and tests will cover language issues. You will design and implement a language of your own design in a semester-long group project.

While few of you will ever implement a full commercial compiler professionally, the concepts, techniques, and tools you will learn have broad application.

Prerequisites

COMS W3157 Advanced Programming: You will be dividing into teams to build a compiler, so you need to have some idea how to keep this under control. Quick test: you need to know about Makefiles and source code control systems.

COMS W3261 Computability and Models of Computation: You will need an understanding of formal languages and grammar to build the parser and lexical analyzer. Quick test: you must know about regular expressions, context-free grammars, and NFAs.

Required Text

Alfred V. Aho, Monica Lam, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 2006. Second Edition. The first edition was long the standard text on compilers; the second edition of the ``dragon book'' has now been updated and continues to be one of the more readable books on the topic. Columbia's own Prof. Al Aho is one of the authors.

Cover of the Dragon Book 2nd edition

Related Texts

Michael L. Scott. Programming Language Pragmatics Morgan Kaufmann, 2006. Second Edition. A broad-minded book about languages in general, but has less on practical details of compiler construction.

Cover of Programming Language Pragmatics 2nd edition

Andrew W. Appel. Modern Compiler Implementation in ML. Cambridge University Press, 1998. The opposite of Scott: focuses on compiler construction, not language design issues. It uses the functional language ML, which is closely related to O'Caml, but just different enough to be annoying.

Cover of Appel

Lawrence C. Paulson ML for the Working Programmer. Cambridge University Press, 1996. Second edition. A book about functional programming. It's written for the ML language, not O'Caml, but the two are closely related.

Cover of Paulson

Steven S. Muchnick Advanced Compiler Design and Implementation. Morgan Kaufmann, 1997. A very extensive book on many aspects of compiler design. Starts about halfway through Appel and goes much farther. Recommended for serious compiler hackers only.

Cover of Muchnick

Object

Important Notes : -

These are the collection of lectures notes . Our subjective is to help students to find all engineering notes with different lectures slides in power point, pdf or html file at one place. Because we always face that we lose much time by searching in Google or yahoo like search engines to find or downloading a good lecture notes in our subject area. Also it is difficult to find popular authoress or books slides with free of cost.

If you find any copyrighted slides or notes then please inform us immediately by comments or email as following address .I will take actions to remove it. Please click bellow to download ppt slides/ pdf notes. If you face any problem in downloading or if you find any link not correctly work or if you have any idea to improve this blog/site or if you find any written mistake or you think some subjects notes should be include then give your suggestion as comment by clicking on comment link bellow the post (bottom of page) or email us in this address engineeringppt.blogspot@gmail.com?subject=comments on engineeringppt.blogspot.com. I will must consider your comments only within 1-2 days.

If you have any good class notes/lecture slides in ppt or pdf or html format then please you upload these files to rapidshare.come and send us links or all files by our email address engineeringppt.blogspot@gmail.com?subject=comments on engineeringppt.blogspot.com.

To find your notes quickly please see the contents on the right hand side of this page which is alphabetically arranged and right click on it. After clicking immediately you find all the notes ppt / pdf / html / video of your searching subjects.

It is better to search your subject notes by clicking on search button which is present at middle of right side of this web page. Then enter your subject and press enter key then you can find all of your lectures notes and click on it.

Thank you for visiting our site.

Click here to download the files:-

Schedule

DateLectureNotesReadingDue
September 3Intro. to LanguagespdfCh. 1, 2
September 8The C Language Reference Manualpdf
September 10"
September 15Scripting LanguagespdfCh. 2
September 17Introduction to O'Camlpdf
September 22"
September 24"Proposal
September 29Language ProcessorspdfCh. 2
October 1Syntax and ParsingpdfCh 3, 4
October 6"
October 8Getting it rightpdfHW1 pdf
October 13Ocamlyacc and ASTspdfCh. 4, 5
October 15Names, Scope, and BindingspdfCh. 6HW2 pdf
October 20"
October 22Small ExamplespdfApp. ALRM
October 27Midterm reviewpdf
October 29Midterm
November 3Election Day Holiday
November 5TypespdfCh. 6
November 10"
November 12Control-flowpdfCh. 6
November 17"
November 19Code GenerationpdfCh. 6, 7, 8
November 24Logic Programmingpdf
November 26Functional ProgrammingpdfHW3 pdf
November 27-28Thanksgiving Holiday
December 1Concurrencypdf
December 3Review for finalpdf
December 8Final Exam
December 19Project reports due

Language Reference Manuals

pdfDennis M. Ritchie, C Reference Manual
pdfKernighan & Ritchie, The C Programming Language
pdfThe C Language Reference Manual (DEC)
pdfThe C Language Reference Manual (SGI)
pdfThe C Language Reference Manual (Microsoft)
pdfStroustrup, The C++ Programming Language
pdfThe Java Language Specification
pdfThe C# Language Specification
homeAho, Kernighan, and Weinberger, The AWK Programming Language

This Term's Projects

MATLIP: MATLAB-like Language for Image Processing (NV) PDF fileProposal PDF fileLRM PDF fileFinal Report Powerpoint fileSlides Compressed Tar ArchiveProject Files Pin-Chin Huang Shariar Kazi Shih-Hao Liao Pohsu Yeh
TablePro: Table Generation Language (RV) PDF fileProposal PDF fileLRM PDF fileFinal Report Rajat Dixit Anureet Dhillon Lakshmi Nadig
culog: Entity Interaction Simulation Language (RV) PDF fileProposal PDF fileLRM PDF fileFinal Report PDF fileSlides John Demme Nishant Shah Devesh Dedhia Cheng Cheng
[K]AML: Array Manipulation Language (NV) PDF fileProposal PDF fileLRM PDF fileFinal Report PDF fileSlides Kaori Fukuoka Ankush Goel Maninder Singh Mayur Lodha
VOPL: Video Processing Language (NV) PDF fileProposal PDF fileLRM PDF fileFinal Report PDF fileSlides Compressed Tar ArchiveProject Files Baolin Shao Huning Dai Jia Li Xuyang Shi
FVPL: Fast Vector Processing Language (SE) PDF fileProposal PDF fileLRM PDF fileFinal Report PDF fileSlides Compressed Tar ArchiveProject Files Ravindra Babu Ganapathi Gowri Kanugovi Pratap Prabhu
CRYPS: Cryptographic Algorithm Language (RV) PDF fileProposal PDF fileLRM PDF fileFinal Report Sarfraz Nawaz Minita Shah Saket Goel Hsiu-Yu Huang
WebAppQA: A Language for Testing Web Applications (NV) PDF fileProposal PDF fileLRM PDF fileFinal Report PDF fileSlides Compressed Tar ArchiveProject Files Adrian Frei Ankit Malhotra Yue-yong Lu Roy Han
SBML: Shen Bi Ma Liang/Magic Pen Boy (NV) PDF fileProposal PDF fileLRM PDF fileFinal Report Bin Liu Yiding Cheng Hao Li Wenhan Zhang
CABG: Deterministic Finite Automaton Language (RV) PDF fileProposal PDF fileLRM PDF fileFinal Report Zip ArchiveProject Files Brody Berg Shaina Graboyes Max Czapanskiy Raphael Almeida
MCSL: Monte Carlo Simulation Language (SE) PDF fileProposal PDF fileLRM PDF fileFinal Report Yunling Wang Chong Zhai Diego Garcia Eita Shuto
SHIL: Simuated Human Interaction Language (RV) PDF fileProposal PDF fileLRM PDF fileFinal Report PDF fileSlides Moses Vaughan Chun Yai Wang Binh Vo Ian Vo
PCGSL: Playing Card Game Simulation Language (RV) PDF fileProposal PDF fileFinal Report Yuriy Kagan Andrew Shu Enrique Henestroza Peter Tsonev
TMSL: Turing Machine Simulation Language (SE) PDF fileProposal PDF fileLRM PDF fileFinal Report PDF fileSlides Compressed Tar ArchiveProject Files Isaac McGarvey Joshua Gordon Keerti Joshi Snehit Prabhu
DruL: Drumming Language (RV) PDF fileProposal PDF fileLRM PDF fileFinal Report PDF fileSlides Robert Stewart Thierry Bertin-Mahieux Benjamin Warfield Waseem Ilahi
MatrEL: Matrix Entertainment Language: A Board Game Creation Language (NV) PDF fileProposal PDF fileLRM PDF fileFinal Report Rochelle Palting
ltc: Less Than C (SE) PDF fileProposal PDF fileFinal Report Compressed Tar ArchiveProject Files Nicolas Viennot
INC: Integrated Network Control Language (SE) PDF fileProposal
pip: Card Game Language (RV) PDF fileProposal PDF fileLRM PDF fileFinal Report Compressed Tar ArchiveProject Files Francis Wallingford
TBSL: Turn-based Simulation Language (RV) PDF fileProposal PDF fileLRM PDF fileFinal Report Zip ArchiveProject Files Vencislav Stanev
MOC-V: A Language for Testing Web Applications (SE) PDF fileProposal PDF fileLRM PDF fileFinal Report Compressed Tar ArchiveProject Files Benjamin Panning
Card-Games: A Language for Card Games (RV) PDF fileProposal PDF fileLRM PDF fileFinal Report Jeffrey Wong

No comments:

Post a Comment