DOC PREVIEW
UMBC CMSC 331 - LECTURE NOTES

This preview shows page 1-2-3 out of 8 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CMSC 331 Fall 2004Some material copyright © 1998 by Addison Wesley Longman, Inc. 1Some material copyright © 1998 by Addison Wesley Longman, Inc. 2• Motivation• Why study programming languages?• Some key conceptsSome material copyright © 1998 by Addison Wesley Longman, Inc. 3Some material copyright © 1998 by Addison Wesley Longman, Inc. 4Printed with FinePrint - purchase at www.softwarelabs.comCMSC 331 Fall 2004Some material copyright © 1998 by Addison Wesley Longman, Inc. 5What is a programming language?“...there is no agreement on what a programminglanguage really is and what its main purpose issupposed to be. Is a programming language atool for instructing machines? A means of communicating between programmers? A vehicle for expressing high-level designs? A notation for algorithms? A way of expressing relationships between concepts? A tool for experimentation? A means of controlling computerized devices? My view is that a general-purpose programming language must be all of those to serve its diverse set of users. The only thing a language cannot be – and survive –is a mere collection of ‘‘neat’’ features.”-- Bjarne Stroustrup, The Design and Evolution of C++ http://www.cs.umbc.edu/331/papers/dne_notes.pdfSome material copyright © 1998 by Addison Wesley Longman, Inc. 6“The Language of Thought Hypothesis (LOTH) postulates that thought and thinking take place in a mental language. This language consists of a system of representations that is physically realized in the brain of thinkers and has a combinatorial syntax (and semantics) such that operations on representations are causally sensitive only to the syntactic properties of representations. …”-- Stanford Encyclopedia of Philosophy-- http://plato.stanford.edu/entries/language-thought/Some material copyright © 1998 by Addison Wesley Longman, Inc. 7On language and thought (2)The tools we use have a profound (anddevious!) influence on our thinking habits,and therefore, on our thinking abilities. -- Edsger Dijkstra, How do we tell truths that might hurt?,http://www.cs.umbc.edu/331/papers/ewd498.htmEdsger Wybe Dijkstra (11 May 1930 -- 6 August 2002), http://www.cs.utexas.edu/users/EWD/Professor Edsger Wybe Dijkstra, a noted pioneer of the science and industry of computing, died after a long struggle with cancer on 6 August 2002 at his home in Neunen, the Netherlands.lSome material copyright © 1998 by Addison Wesley Longman, Inc. 8“What doesn't exist are really powerfulgeneral forms of arguing with computers right now. So we have to have special orders coming in on special cases and then think up ways to do it. Some of these are generalizable and eventually you will get an actual engineering discipline.”-- Alan Kay, Educom ReviewAlan Kay is one of the inventors of the Smalltalk programming language and one of the fathers of the idea of OOP. He is the conceiver of the laptop computer and the architect of the modernwindowing GUI.Printed with FinePrint - purchase at www.softwarelabs.comCMSC 331 Fall 2004Some material copyright © 1998 by Addison Wesley Longman, Inc. 9–Why study PL concepts?–Programming domains–PL evaluation criteria–What influences PL design?–Tradeoffs faced by programming languages–Implementation methods–Programming environmentsSome material copyright © 1998 by Addison Wesley Longman, Inc. 10• Increased capacity to express programming concepts• Improved background for choosing appropriate languages• Increased ability to learn new languages• Understanding the significance of implementation• Increased ability to design new languages• Mastering different programming paradigmsSome material copyright © 1998 by Addison Wesley Longman, Inc. 11Some material copyright © 1998 by Addison Wesley Longman, Inc. 12Printed with FinePrint - purchase at www.softwarelabs.comCMSC 331 Fall 2004Some material copyright © 1998 by Addison Wesley Longman, Inc. 13How is it for one to read and understand programs written in the PL?Arguably the most important criterion!Factors effecting readability include:–Overall simplicity»Too many features is bad as is a multiplicity of features–Orthogonality»Makes the language easy to learn and read»Meaning is context independent–Control statements–Data type and structures–Syntax considerationsSome material copyright © 1998 by Addison Wesley Longman, Inc. 14How easy is it to write programs in the language?Factors effecting writability:–Simplicity and orthogonality–Support for abstraction–Expressivity–Fit for the domain and problemSome material copyright © 1998 by Addison Wesley Longman, Inc. 15Factors:Some material copyright © 1998 by Addison Wesley Longman, Inc. 16Printed with FinePrint - purchase at www.softwarelabs.comCMSC 331 Fall 2004Some material copyright © 1998 by Addison Wesley Longman, Inc. 17Some material copyright © 1998 by Addison Wesley Longman, Inc. 18Computer architecture- We use imperative languages, at least in part, because we use von Neumann machines- John von Neuman is generally considered to be the inventor of the "stored program" machines - the class to which most of today's computers belong. - CPU+memory which contains both program and data- Focus on moving data and program instructions between registers in CPU to memory locationsSome material copyright © 1998 by Addison Wesley Longman, Inc. 19Some material copyright © 1998 by Addison Wesley Longman, Inc. 20Programming methodologies• 50s and early 60s: Simple applications; worry about machine efficiency• Late 60s: People efficiency became important; readability, better control structures. maintainability• Late 70s: Data abstraction• Middle 80s: Object-oriented programming• 90s: distributed programs, internet, web• 00s: Autonomic systems?, pervasive computing? Genetic programming? Semantic web?Printed with FinePrint - purchase at www.softwarelabs.comCMSC 331 Fall 2004Some material copyright © 1998 by Addison Wesley Longman, Inc. 21Imperative or procedural (e.g., Fortran, C)Functional (e.g., Lisp, ML)Rule based (e.g. Prolog, Jess)Object-oriented (e.g. Smalltalk, Java)Scripting (e.g., Perl, Tcl/Tk, PHP)Constraint (e.g., Eclipse)Concurrent (Occam)…Some material copyright © 1998 by Addison Wesley Longman, Inc. 22Reliability versus cost of executionAda, unlike C, checks all array indices to ensure proper range.Writability versus readability(2 = 0 +.= T o.| T) / T <- iN is an APL one liner that produces a list of


View Full Document

UMBC CMSC 331 - LECTURE NOTES

Documents in this Course
Semantics

Semantics

14 pages

Java

Java

12 pages

Java

Java

31 pages

V

V

46 pages

Semantics

Semantics

11 pages

Load more
Download LECTURE NOTES
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view LECTURE NOTES and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view LECTURE NOTES 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?