{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

Principles_of_Programming_Languages

Principles_of_Programming_Languages - Isaac Ibrahim...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Isaac Ibrahim Sadaqah -Notes Principles of Programing Languages Taught by- Daniel Scharstein Grading HW 60% 3 24 hours exceptions no questions asked Quizzes 10% 1 every one or two weeks Midterm 20% Wednesday 3/18 7:30pm Final 30% Self-Scheduled Principles of Programming Languages Programming Languages Survey Programming Languages Paradigms • Procedural ◦ FORTRAN, ALGOL, BASIC, C, Pascal, Python • OO ◦ Ada, C++, Java, C#, SmallTalk, Python • Functional ◦ LISP {Common LISP, Dylan, Logo, Scheme }, Haskell, ML, Python • Logic (declarative, based on mathematical logic) ◦ Prolog • Scripting Languages (text processing, shells, HTML, CGI) ◦ awk (text processing, extracts patterns), Perl, Tcl/Tk, Python , PHP, Ruby Monday Feb 9, 2009 Lecture #1 • Why study programming languages ◦ As users ▪ know how to choose PL ▪ know useful programming constructs ◦ As designers ▪ understand the motivation; why a feature is present in one language and not the other. ◦ As implementers (compiler writer) • All programming languages have universal computing power (equivalent to Turing machine) ◦ we are interested in practical power ▪ how easy to implement ▪ libraries ▪ how fast the language runs (trade off with the above 2) ▪ easy to compile ▪ platforms ▪ how easy to debug • Programming Language Pros Cons Java platform independent garbage collector (frees memory) garbage collector (takes up time every time it runs) C no objects not very safe Ruby clean object oriented language interpreted/easy to use slow Python everything is an object slow BASIC Scheme too many parenthesis Tcl PHP Javascript Matlab Perl SmallTalk ML Prolog • Programming Linguistics ◦ Sapir-Wharf hypothesis ▪ Structure of languages define the boundaries of thought. ◦ applied to PL ▪ Language choice affects solutions you are likely to use. • Trade offs we think about when choosing a language ◦ expressive power vs. safety ▪ pascal and Java are safe, everything is typed, you can not access things unsafely, but it is a pain to have to declare everything, or you may need to write a program that needs to change itself. ◦ implementation (building compiler) vs. usefulness ▪ what features to build into your language, LISP and Scheme look very similar, the language of scheme is the minimal subset of LISP, LISP has way too many features. ◦ Syntax: concise vs. clean syntax ▪ C vs. Java ▪ = assignment == equal/comparison ▪ PASCAL == assignment = equal HW for Wed, Read Chapter 1 Wednesday Feb 11, 2009 Lecture #2 • Verbal Quiz on reading ◦ what is machine language? ▪ code, the language of 0s and 1s. ◦ what is assembly language? ▪ is English words that has one to one translation to machine code....
View Full Document

{[ snackBarMessage ]}

Page1 / 65

Principles_of_Programming_Languages - Isaac Ibrahim...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon bookmark
Ask a homework question - tutors are online