Programming Languages Overview, Lecture notes of Programming Languages

An overview of programming languages and their evaluation criteria. It also mentions the Squash community at Carnegie Mellon University and some course offerings related to automated theorem proving, computation, and linear logic. factors affecting programmer productivity and the importance of language in implementing data structures, designing code, and analyzing programs. It also lists some faculty members and their research areas in software engineering, security, and theory of computation.

Typology: Lecture notes

Pre 2010

Uploaded on 05/11/2023

brittani
brittani 🇺🇸

4.7

(30)

287 documents

1 / 24

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Programming Languages Overview
Frank Pfenning
Carnegie Mellon University
Computer Science Immigration Course
August 2003
CMU CSD IC, Aug 2003 p.1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18

Partial preview of the text

Download Programming Languages Overview and more Lecture notes Programming Languages in PDF only on Docsity!

Programming Languages Overview

Frank PfenningCarnegie Mellon University Computer Science Immigration Course

August 2003

Before I Forget

-^ Squash community at CMU!^ •^ Squash ladder; intramurals •^ Squash community in Pittsburgh (PSRA)^ •^ Three major annual tournaments^ •^ Two squash pros •^ Links from my home page (or send me mail)

Core Members^ •^ Stephen Brookes

, concurrency

-^ Karl Crary

, certified code, typed compilation

-^ Robert Harper

, certifying compilation, logical frameworks, module systems, type refinement • Peter Lee

, proof-carrying code, compilers

-^ Frank Pfenning

, logical frameworks, automated theorem proving, type refinement • John Reynolds

, imperative programming, reasoning about low-level languages • Dana Scott

(retd. May’03)

POP and Software Engineering^ •^ Jonathan Aldrich

(ISRI), language techniques in software engineering • Ed Clarke

, hardware and software verification, model checking • David Garlan

, software architecture

-^ Bill Scherlis

(ISRI), software dependability

-^ Dawn Song

(ECE/CS), security

-^ Jeannette Wing

, software specification and verification, security

Some Recent Graduates^ •^ Andrej Bauer, University of Ljubljana^ •^ Lars Birkedal, IT University of Copenhagen^ •^ Perry Cheng, IBM Research^ •^ Alberto Momigliano (Phil), University of Edinburgh[postdoc]^ •^ Robert OCallahan, IBM Research^ •^ George Necula, Berkeley^ •^ Gerald Penn (LTI), University of Toronto

More Recent Graduates^ •^ Brigitte Pientka, McGill University^ •^ Jeff Polakow, University of Edinburgh [postdoc]^ •^ Carsten Schuermann, Yale^ •^ Chris Stone, Harvey Mudd College^ •^ Roberto Virga (Math), Princeton [postdoc]^ •^ HongWei Xi (Math), Boston University [postdoc]

More Course Offerings^ •^ 15-815 Automated Theorem Proving(Pfenning/Sp04)^ •^ 15-851 Computation and Deduction(Pfenning/Sp01)^ •^ 15-816 Linear Logic (Pfenning/Fa01)

Factors in Programmer Productivity^ •^ Programmer productivity^ •^ Initial development time^ •^ Program correctness and robustness^ •^ Software maintainability^ •^ Crucial factors^ •^ Programming language(s)^ •^ Development environment^ •^ Software engineering practices

Two Quotes^ An ideal language allows us to express easily what isuseful for the programming task and at the same timemakes it difficult to write what leads to incomprehensibleor incorrect programs.

—Nico Habermann

Good languages make it easier to establish, verify, andmaintain the relationship between code and itsproperties.

—Robert Harper

Too Many Languages?^ •^ In the last three years I have written code in atleast the following languages:

Standard ML

Emacs Lisp

Twelf

TeX^

Csh^

C

Perl^

Java^

CML

-^ Different languages for different purposes •^ Many are poorly designed^ •^ Those authors did not graduate from CMU!^ •^ Your favorite mis-feature?

From the Perl Manual^ When presented with something that might have severaldifferent interpretations, Perl uses the DWIM (that’s ”DoWhat I Mean”) principle to pick the most probableinterpretation. This strategy is so successful that Perlprogrammers often do not suspect the ambivalence ofwhat they write. But from time to time, Perl’s notionsdiffer substantially from what the author honestly meant.

From the TEX manual^ Please don’t read this material until you’ve had plenty ofexperience with plain T

X. After you have read andE

understood the secrets below, you’ll know all sort ofdevious combinations of T

X commands, and you willE

often be tempted to write inscrutable macros.

—Donald E. Knuth

Science of Programming Languages^ •^ There is an established science of programminglanguages. Among its first papers:“Some Properties of Conversion”, AlonzoChurch and J.B. Rosser,

Transactions of the

American Mathematical Society

, Vol. 39(3),

pp. 472–482, May 1936.

Basic Tools^ •^ Type theory

: Techniques for structuring languages to ensure safety and modularity ofprograms • Operational semantics

: Techniques for

describing the execution behavior of programs, atvarious level of abstraction • Mathematical logic

: Techniques for specifying

and verifying programs