01 Intro - COP 5555 Pr ogr amming L anguage Pr inciples...

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

View Full Document Right Arrow Icon
COP 5555 Programming Language Principles Fall 2009
Background image of page 1

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

View Full DocumentRight Arrow Icon
Why study programming languages? Programming languages are central to computing Interesting to know what is “beneath the hood” Helps you choose a language some tasks are much easier to do in a particular paradigm 2
Background image of page 2
Makes it easier to learn new languages Some languages are similar; easy to walk down family tree Concepts have even more similarity; Thinking in terms of iteration, recursion, abstraction (for example) make it easier to assimilate the syntax and semantic details of a new Analogy to human languages: good grasp of grammar makes it easier to pick up new languages (at least Indo-European). 3
Background image of page 3

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

View Full DocumentRight Arrow Icon
Help you make better use of whatever language you use understand obscure features choose between alternative ways of expressing things things based on knowledge of implementation costs use simple arithmetic when possible (use x*x instead of x**2) use C pointers or Pascal "with" statement to factor address calculations avoid call by value with large data items in Pascal Use StringBuffer instead of + to construct Strings in Java 4
Background image of page 4
know do things in languages that don't support them explicitly : lack of suitable control structures in Fortran use comments and programmer discipline for control structures lack of recursion in Fortran, CSP, etc write a recursive algorithm then use mechanical recursion elimination make good use of debuggers, assemblers, linkers, decompilers, and related tools 5
Background image of page 5

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

View Full DocumentRight Arrow Icon
Make better use of language technology wherever it appears or may be useful!!! you probably won’t ever design or implement a conventional programming language, but you likely will need language technology for other programming tasks. Code to parse, analyze, generate, optimize, and otherwise manipulate structured data can be found in almost any sophisticated program—all based on programming language technology. Many tools can be customized: the tool designer must design the customization language 6
Background image of page 6
Programming languages give us ways of expressing algorithms different languages encourage different ways of thinking about problems abstraction of virtual machine a way of specifying what you want the hardware to do without getting down with bit-level details formal notations can be analyzed and processed by a program (i.e. compilers and other tools) 7
Background image of page 7

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

View Full DocumentRight Arrow Icon
Topics from syllabus Specification of programming languages Syntax How can we describe what a legal program looks like? Semantics How can we describe what a program means? Operational Semantics Denotational Semantics Axiomatic Semantics Attribute Grammars 8
Background image of page 8
Topics from syllabus (2) Programming language spectrum (more later) Imperative Declarative Concurrent Issues in language design Language features and their implementations 9
Background image of page 9

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

View Full DocumentRight Arrow Icon
Topics from the syllabus (3) Points of View Designer of the programming language Implementer (i.e. compiler writer) User of the language We will be interested in all three 10
Background image of page 10
Image of page 11
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 12/09/2009 for the course COP 5555 taught by Professor Staff during the Fall '08 term at University of Florida.

Page1 / 52

01 Intro - COP 5555 Pr ogr amming L anguage Pr inciples...

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

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