CS 655 Programming Languages Scheming Schemers Mocking Mockingbirds and Objecting Objectively Lecture 1 Wherefore CS655 The use of cripples the mind its teaching should therefore be regarded as a criminal offence Edsger W Dijkstra 1975 CS655 Programming Languages University of Virginia David Evans Computer Science http www cs virginia edu evans Menu What is Computer Science Goals for the Course Programming Languages Design Tradeoffs Send registration email by Sunday 18 Jan 2001 CS 655 Lecture 1 2 What is Computer Science 18 Jan 2001 CS 655 Lecture 1 3 Let AB and CD be the two given numbers not relatively prime It is required to find the greatest common measure of AB and CD If now CD measures AB since it also measures itself then CD is a common measure of CD and AB And it is manifest that it is also the greatest for no greater number than CD measures CD But if CD does not measure AB then when the less of the numbers AB and CD being continually subtracted from the greater some number is left which measures the one before it 18 Jan 2001 CS 655 Lecture 1 4 For a unit is not left otherwise AB and CD would be relatively prime which is contrary to the hypothesis Therefore some number is left which measures the one before it Now let CD measuring BE leave EA less than itself let EA measuring DF leave FC less than itself and let CF measure AE Since then CF measures AE and AE measures DF therefore CF also measures DF But it measures itself therefore it also measures the whole CD But CD measures BE therefore CF also measures BE And it also measures EA therefore it measures the whole BA But it also measures CD therefore CF measures AB and CD Therefore CF is a common measure of AB and CD I say next that it is also the greatest If CF is not the greatest common measure of AB and CD then some number G which is greater than CF measures the numbers AB and CD Now since G measures CD and CD measures BE therefore G also measures BE But it also measures the whole BA therefore it measures the remainder AE But AE measures DF therefore G also measures DF And it measures the whole DC therefore it also measures the remainder CF that is the greater measures the less which is impossible Therefore no number which is greater than CF measures the numbers AB and CD Therefore CF is the greatest common measure of AB and CD Euclid s Elements Book VII Proposition 2 300BC 18 Jan 2001 CS 655 Lecture 1 5 By the word operation we mean any process which alters the mutual relation of two or more things be this relation of what kind it may This is the most general definition and would include all subjects in the universe Again it might act upon other things besides number were objects found whose mutual fundamental relations could be expressed by those of the abstract science of operations and which should be also susceptible of adaptations to the action of the operating notation and mechanism of the engine Supposing for instance that the fundamental relations of pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent Ada Countess of Lovelace around 1830 18 Jan 2001 CS 655 Lecture 1 6 What is the difference between Euclid and Ada It depends on what your definition of is is Bill Gates speaking at Microsoft s anti trust trial 18 Jan 2001 CS 655 Lecture 1 7 Geometry vs Computer Science Geometry mathematics is about declarative knowledge what is If now CD measures AB since it also measures itself then CD is a common measure of CD and AB Computer Science is about imperative knowledge how to Computer Science has nothing to do with beige or translucent blue boxes called computers and is not a science 18 Jan 2001 CS 655 Lecture 1 8 Next My Goals for the Course 18 Jan 2001 CS 655 Lecture 1 9 Goal 1 Make this the first real Computer Science most of you have taken 18 Jan 2001 CS 655 Lecture 1 10 Imperative Knowledge The core of Computer Science is describing and reasoning about computations This class is about Tools for describing computations programming languages Tools for reasoning about those tools mostly formal semantics 18 Jan 2001 CS 655 Lecture 1 11 Goal 2 Not waste your time 18 Jan 2001 CS 655 Lecture 1 12 Graduate Students Should make research their highest priority after sleeping eating and maintaining sanity and happiness Should not spend time on courses except when it Makes them better researchers Is of intrinsic interest and value Should be mature enough to decide what it is worthwhile to spend time on 18 Jan 2001 CS 655 Lecture 1 13 Hence Everything in this class is optional Except Problem Set 0 Registration Survey You should not take this course unless you believe most of the material we will cover is either Relevant to your research Intrinsically cool and interesting Note all of it is both 18 Jan 2001 CS 655 Lecture 1 14 Evaluation I still need to grade you of course To get an A in this course you need to convince me of your deep understanding of the most important course material 18 Jan 2001 CS 655 Lecture 1 15 Ways to get an A in CS 655 1 Do well on the assignments or 2 Do well on an oral final exam or 3 Produce a quality research paper on a relevant topic or 4 Demonstrate your understanding through outstanding class contributions 18 Jan 2001 CS 655 Lecture 1 16 Questions Next Goals 3 8 18 Jan 2001 CS 655 Lecture 1 17 Goal 3 When you need to invent a language and most of you will at some point in your career you will design it not just make it up 18 Jan 2001 CS 655 Lecture 1 18 What s the difference Designed Just Made Up Examples Esperanto CLU English C Properties Predictable Unpredictable Ways to do something One Many Users 1M 5 15 1B 1M Moral A bigger army beats good design every time But good designs can influence people with armies 18 Jan 2001 CS 655 Lecture 1 19 Goal 4 When you design your language you will have sufficient knowledge of other languages not to repeat their mistakes and solid enough theory background to describe your language well 18 Jan 2001 CS 655 Lecture 1 20 Goal 5 You will become better at programming and building systems You will think more clearly and maybe even write better A language that doesn t affect the way you think about programming is not worth knowing Alan Perlis 18 Jan 2001 CS 655 Lecture 1 21 Goal 6 Some of you will do projects that lead to conference papers and influence your theses All of you will be able to
View Full Document