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

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.

General Information

- Course Information Sheet A.K.A. Prontuario (PDF)
- Course Outline  (PDF)

Lectures Tuesday & Thursday (3:30-4:45) @ Stefani 203

- Lecture   1 – Administrivia, Course Overview, Brief PL History, PL design criteria (PDF, Video: Ago18, Ago20, Ago25)
- Lecture   2 – The Nature of Computing (PDF, Video: Ago27, Sep1, Sep15 )
- Lecture   3 – Programming Language Specification and Translation (PDF, Video: Sep17, Sep29, Oct01, Oct20, Oct22)
- Lecture   4 – Programming Language Paradigms I – Low-level programming (PDF, Video: Oct27, Oct29)
- Lecture  5 – Programming Paradigms II – Imperative Programming (e.g.) (PDF, Video: Nov03, Nov05, Nov12, Nov17)
- Lecture 6 – Programming Paradigms III – Functional Programming (e.g. Scheme) (PDF, Video: Nov19, Dic01, Dic08)
- Lecture 7 – Programming Paradigms IV – Logic Programming (e.g. Prolog) (PDF, Video: Dic10)
- Lecture 8 – Subroutines and Control Abstraction (PDF)

Exams

- Exam 1:TBA (Topics, Practice, Solution, Stats)
- Exam 2: TBA (Topics, Practice, Solution, Stats)
- Exam 3:TBA (Topics, Practice, Solution, Stats)
- Final Exam:   (Topics, Practice, Solution, Stats)

Problem Sets

- Problem Set 1. TBA (PDF, Solution)
- Problem Set 2. TBA (PDF, Solution)
- Problem Set 3. TBA (PDF, Solution)
- Problem Set 4. TBA (Doc, Solution)

Programming Assignments

- Programming Assignment 1. TBA  (Word, PDF, Solution)
- Programming Assignment 2. TBA (Word, PDF, Solution)
- Programming Assignment 3. TBA (RefCode, Doc, Solution)
- Programming Assignment 4. TBA (RefCode, Doc, Solution)

Email Lists

- icom4036-profs
- icom4036-students  (Subscribe) (Archives)
- icom4036-forum (staff & students)(Archives)

Software Development Tools

- 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)
- X Server for Windows (download)
- Check you linux account User id (section 156, section 166)

Supplementary Readings

- “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)

-

Computability and Turing Machines

  1. CS 110 Notes University of Alberta
  2. Turing Machines in Stanford’s Encyclopedia of Philosophy

Language References and Documentation

- MIPS Assembly Language and SPIM
  1.  “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.
  2. SPIM/MIPS Instruction Set Sheet (PlainText)
  3. Useful website with lots of MIPS/SPIM documentation (click)
-  Fortran 77
  1. Getting Started with G77 (Windows)
  2. Gilberto Urroz’s Fortran 77 page
  3. Professional Programmer’s Guide to Fortran77 (HTML)
  4. Fortran Language Reference @ Sun Product Documentation (Web)
-  Scheme
  1. Scheme home site @ MIT
  2. Revised Report on The Algorithmic Language Scheme” (HTML)
- Prolog
  1. Prolog Tutorial (HTML)
- Perl
  1. Picking up Perl Tutorial (Available here in several formats)
- Ada
  1. Quick Ada Tutorial (pdf)

Other Reference Links

-

Página del curso ICOM4036 del Profesor Wilson Rivera (click)

-

Introduction to Programming Languages by Anthony A. Aaby (HTML)

-

MIT 6.004 Computation Structure course Fall 2002 (HTML)

  1. The Digital Abstraction (PDF)
  2. CMOS Computers (PDF)
  3. Gates (PDF)

Course Evaluation

-

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

Si descubres algún enlace útil para la clase avísame para colocarlo aquí.

 

<TOP>