ICOM 4036 – Structure and Properties of Programming Languages (Fall 2003)

Comparative study of programming paradigms including imperative, object-oriented, functional, logic, and concurrent programming with focus on main features produced by different languages for specific applications. Formal specification of the syntactic structure of a language, context-free grammars, parsing, and principles of language design.

Información General

- Prontuario del Curso (PDF)
- Bosquejo del Curso  (PDF)

Conferencias (Martes y Jueves 1:03 – 2:50 Stefani 230)

- Lecture   1 – Administrivia, Course Overview, Brief PL History, PL design criteria (PDF)
- Lecture   2 – Programming Paradigms I – Low-level Programming (e.g. MIPS Assembly) (PDF)
- Lecture   3 – Programming Paradigms II – Imperative Programming (e.g. Fortran) (PDF)
- Lecture   4 – Programming Paradigms III – Functional Programming (e.g. Scheme) (PDF)
- Lecture   5 – Programming Paradigms IV – Logic Programming (e.g. Prolog) (PDF)
- Lecture   6 – Programming Paradigms V – Object-Oriented Programming (e.g. C++/Java) (PDF, Abstraction, Inheritance)
- Lecture   7 – Programming Paradigms VI – Scripting (e.g. Perl) (Class notes)
- Lecture   8 – Programming Language Specification and Translation (PDF)
- Lecture   9 – Names, Bindings, Scopes and Lifetimes (PDF)
- Lecture 10 – Type Systems (PDF)
- Lecture 11 – Expressions and Control Structures (e.g. Ada)  (PDF)
- Lecture 12 – Procedures and Functions (PDF)
- Lecture 13 – Abstract Data Types (PDF)
- Lecture 14 – Polymorphism (PDF)
- Lecture 15 – Concurrency and Parallelism (PDF)
- Lecture 16 – Exceptions (PDF)


-Examen Parcial 1: 7 de octubre de 2003. 6-8PM. S-113 (Temas, Práctica, Solución, Estadísticas)

-Examen Parcial 2: 28 de octubre de 2003. 6-8PM. Room TBA (Temas, Practica, Solución, Estadísticas)

-Examen Parcial 3: 25 de noviembre de 2003. 6-8PM. Room TBA (Temas, Práctica, Solución, Estadísticas)

-Examen Final:      10 de diciembre de 2003 9:45AM Salón a ser anunciado (Temas, Practica, Solución, Estadísticas)


- Problemario 1. FORTRAN The Bisection Method for Finding Roots (doc, pdf, template) DUE 9/25
- Problemario 2. SCHEME: Symbolic Algebra on Polynomials (doc, pdf, template) DUE 10/17
- Problemario 3.
- Problemario 4.
- Problemario 5.

Correo Electrónico

- icom4036-TAs (TAs)
- icom4036-profs (profesor(es))
- icom4036-students (todos los estudiantes de INEL 4206)(Subscribe)(Archives)
- icom4036-forum (staff y estudiantes)(Archives)


- Emacs for Windows (download)
- .emacs File (download)
- SPIM Simulator (home site, windows version)
- UC Berkeley  SPIM including SPIM for Mac OS (home site, macOS X)
- download)

Lecturas Sumplementarias

- “The Nature of Computing”. Bienvenido Velez. COMPEL 2002 Plenary Talk. (PDF)
- RFC 1855: Netiquette Guidelines. ABSTRACT: This document provides a minimum set of guidelines for Network Etiquette (Netiquette) which organizations may take and adapt for their own use. As such, it is deliberately written in a bulleted format to make adaptation easier and to make any particular item easy (or easier) to find. It also functions as a minimum set of guidelines for individuals, both users and administrators. This memo is the product of the Responsible Use of the Network (RUN) Working Group of the IETF.
- “Lambda: The Ultimate Imperative”.  Guy Steel and Gerald Sussman. MIT AI Lab Memo 353. (PDF

Documentacion de Lenguajes

- MIPS Assembly Language and SPIM

bullet “Assemblers, Linkers and the SPIM Simulator”. This is Appendix A of Hennessy & Patterson, Computer Organization and Design: The Hardware/Software Interface. Coutersy of Morgan Kaufmann Publishers.
bullet SPIM/MIPS Instruction Set Sheet (PlainText)
- Fortran 77

bullet Getting Started with G77 (Windows)
bullet Gilberto Urroz’s Fortran 77 page
bullet Professional Programmer’s Guide to Fortran77 (HTML)
- Scheme

bullet Scheme home site @ MIT
bullet Revised Report on The Algorithmic Language Scheme” (HTML)
- Prolog

bullet Prolog Tutorial (HTML
- Perl

bullet Picking up Perl Tutorial (Available here in several formats)
- Ada

bullet Quick Ada Tutorial (pdf

Enlaces de referencia

- Pagina del curso ICOM4036 del Profesor Wilson Rivera (click)
- Introduction to Programming Languages by Anthony A. Aaby (HTML)

Evaluación de la clase por los estudiantes

- Evaluación del curso por los estudiantes durante el examen parcial I (PDF)