Principles of Programming Languages Topic: Introduction Professor Louis Steinberg
|
|
- Patience Todd
- 8 years ago
- Views:
Transcription
1 Principles of Programming Languages Topic: Introduction Professor Louis Steinberg CS 314, LS,LTM: L1: Introduction 1
2 Contacts Prof. Louis Steinberg cs.rutgers.edu x Hill TA: to be announced Class web site http: // CS 314, LS,LTM: L1: Introduction 2
3 Books Kenneth Louden, Programming Languages Kenneth Reek, Pointers on C Kip Irvine, C++ and Object-Oriented Programming Clocksin & Mellish, Programming in Prolog CS 314, LS,LTM: L1: Introduction 3
4 Work Midterm (Friday 3/5 2:50-4:10PM ) Final 3 projects Homework In-lab programming test (?) CS 314, LS,LTM: L1: Introduction 4
5 Topics Introduction Formal Languages - RE s, BNF, context-free grammars, parsing Functional Programming (Scheme) Names, Bindings, Memory management Imperative Programming (C) Parameter Passing ADT s, Object-oriented Design (C++) Logic Programming (Prolog) Types Parallel Programming? Threads and monitors? CS 314, LS,LTM: L1: Introduction 5
6 Course Goals To gain an understanding of the basic structure of programming languages: Data types, control structures, naming conventions,... To learn the principles underlying all programming languages: So that it is easier to learn new languages To study different language paradigms: Functional (Scheme), Imperative (C), Object-Oriented (C++, Java), Logic (Prolog) So that you can select an appropriate language for a task CS 314, LS,LTM: L1: Introduction 6
7 What is a programming language? a language intended for use by a person to express a process by which a computer can solve a problem -Hope and Jipping a set of conventions for communicating an algorithm - E. Horowitz the art of programming is the art of organizing complexity - Dijkstra, 1972 CS 314, LS,LTM: L1: Introduction 7
8 Anthropomorphism Whenever a human term (e.g., language ) is used about computers, ask: How analogous How differs CS 314, LS,LTM: L1: Introduction 8
9 Desiderata for PL Design Readable comments, names, ( ) syntax Simple to learn Orthogonal - small number of concepts combine regularly and systematically (without exceptions) Portable language standardization Abstraction control and data structures that hide detail Efficient CS 314, LS,LTM: L1: Introduction 10
10 Why learn more than one PL? So you can choose the right language for a given problem If all you have is a hammer, every problem looks like a nail CS 314, LS,LTM: L1: Introduction 11
11 Why learn more than one PL? So you can learn a new language more easily later As your job changes, you may need to used different languages As our understanding of programming improves, new languages are created To learn new ways of thinking about problems Different languages encourage you to think about problems in different ways Paradigms CS 314, LS,LTM: L1: Introduction 12
12 What is a Paradigm A way of looking at a problem and seeing a program What kind of parts do you look for? Problem: Print a large X of size n. E.g., size 5 is X X X X X X X X X CS 314, LS,LTM: L1: Introduction 13
13 Imperative Paradigm A program is: A sequence of state-changing actions Manipulate an abstract machine with: Variables that name memory locations Arithmetic and logical operations Reference, evaluate, assign operations Explicit control flow statements Fits the Von Neumann architecture closely Key operations: Assignment and GoTo CS 314, LS,LTM: L1: Introduction 17
14 Imperative Paradigm Sum up twice each number from 1 to N. Fortran SUM = 0 DO 11 K=1,N SUM = SUM + 2*K 11 CONTINUE C sum = 0; for (k = 1; k <= n; ++k) sum += 2*k; Pascal sum := 0; for k := 1 to n do sum := sum + 2*k; CS 314, LS,LTM: L1: Introduction 18
15 Functional Paradigm A program is: Composition of operations on data Characteristics (in pure form): Name values, not memory locations Value binding through parameter passing Recursion rather than iteration Key operations: Function Application and Function Abstraction Based on the Lambda Calculus CS 314, LS,LTM: L1: Introduction 19
16 Functional Paradigm Scheme (define (sum n) (if (= n 0) 0 (+ (* n 2) (sum (- n 1))) ) ) (sum 4) evaluates to 20 CS 314, LS,LTM: L1: Introduction 20
17 Logic Paradigm A program is: Formal logical specification of problem Characteristics (in pure form): Programs say what properties the solution must have, not how to find it Solutions are obtained through a specialized form of theorem-proving Key operations: Unification and NonDeterministic Search Based on First Order Predicate Logic CS 314, LS,LTM: L1: Introduction 21
18 Logic Paradigm sum(0,0). sum(n,s) :- N>0, NN is N - 1, sum(nn, SS), S is N * 2 + SS. Prolog?- sum(1,2). yes?- sum (2,4). no?-sum(20,s). S = 420?-sum (X,Y). X = 0 = Y CS 314, LS,LTM: L1: Introduction 22
19 Object-Oriented Paradigm A program is: Communication between abstract objects Characteristics: Objects collect both the data and the operations Objects provide data abstraction Can be either imperative or functional (or logical) Key operation: Message Passing or Method Invocation CS 314, LS,LTM: L1: Introduction 23
20 Object-oriented Paradigm class intset : public Set { public: intset() { } //inherits Set add_element(), Set del_element() //from Set class, defined as a set of Objects } public int sum( ){ } int s = 0; SetEnumeration e = new SetEnumeration(this); while (e.hasmoreelements()) do {s = s + ((Integer)e.nextElement()).intValue();} return s; Java CS 314, LS,LTM: L1: Introduction 24
21 Translation Compilation: Program is translated from a highlevel language into a form that is executable on an actual machine Interpretation: Program is translated and executed one statement at a time by a virtual machine Some PL systems are a mixture of these two E.g., Java foo.java Source Input Intermediate code javac Translator Virtual Machine java (JVM) foo.class bytecode Intermediate code Output CS 314, LS,LTM: L1: Introduction 25
22 Compilation scanner optimizer parser code generator intermediate code generator assembler linker CS 314, LS,LTM: L1: Introduction 26
23 scanner parser Compilation position = initial + rate * 60; id1 := id2 + id3 * 60 optimizer code generator intermediate code generator assembler linker CS 314, LS,LTM: L1: Introduction 27
24 Compilation scanner parser intermediate code generator symbol table (position,...) (initial, ) (rate, ) tmp1 = inttoreal (60) tmp2 = id3 * tmp1 tmp3 = id2 + tmp2 id1 = tmp3 := parse tree id1 + id2 * id3 int-to-real 60 CS 314, LS,LTM: L1: Introduction 28
25 Compilation tmp2 = id3 * 60.0 id1 = id2 + tmp2 movf id3, R2 mulf #60.0, R2 movf id2, R1 addf R2, R1 movf R1, id1 optimizer code generator assembler linker move R1, R-base, R-offset movf R1, CS 314, LS,LTM: L1: Introduction 29
26 History of PLs Prehistory 300 B.C. Greece, Euclid invented the greatest common divisor algorithm - oldest known algorithm ~ England, Charles Babbage invented two mechanical computational devices difference engine analytical engine Countess Ada Augusta of Lovelace, first computer programmer Precursors to modern machines 1940 s United States, ENIAC developed to calculate trajectories CS 314, LS,LTM: L1: Introduction 30
27 History of PLs 1950 s United States, first high-level PLs invented Fortran , John Backus (IBM on 704) designed for numerical scientific computation fixed format for punched cards implicit typing only counting loops, if test versus zero only numerical data 1957 optimizing Fortran compiler translates into code as efficient as hand-coded CS 314, LS,LTM: L1: Introduction 31
28 History of PLs Algol , designed by international committee for numerical scientific computation [Fortran] block structure with lexical scope free format, reserved words while loops, recursion explicit types BNF developed for formal syntax definition Cobol , designed by committee in US, manufacturers and DoD for business data processing records focus on file handling English-like syntax CS 314, LS,LTM: L1: Introduction 32
29 History of PLs APL Ken Iverson, (IBM on 360, Harvard) designed for array processing functional programming style LISP , John McCarthy (MIT on IBM704, Stanford) designed for non-numerical computation uniform notation for program and data recursion as main control structure garbage collection Snobol , Farber, Griswold, Polansky (Bell Labs) designed for string processing powerful pattern matching CS 314, LS,LTM: L1: Introduction 33
30 History of PLs PL/I , IBM designed for general purpose computing [Fortran, Algol60, Cobol] user controlled exceptions multi-tasking Simula , Dahl and Nygaard (Norway) designed as a simulation language [Algol60] data abstraction inheritance of properties Algol , designed for general purpose computing [Algol60] orthogonal language design interesting user defined types CS 314, LS,LTM: L1: Introduction 34
31 History of PLs Pascal 1969, N. Wirth(ETH) designed for teaching programming [Algol60] 1 pass compiler call-by-value semantics Prolog 1972, Colmerauer and Kowalski designed for Artificial Intelligence applications theorem proving with unification as basic operation logic programming Recent C 1974, D. Ritchie (Bell Labs) designed for systems programming allows access to machine level within high-level PL efficient code generated CS 314, LS,LTM: L1: Introduction 35
32 History of PLs Clu , B. Liskov (MIT) designed for simulation [Simula] supports data abstraction and exceptions precise algebraic language semantics attempt to enable verification of programs Smalltalk mid-1970s, Alan Kay (Xerox Parc), considered first real object-oriented PL, [Simula] encapsulation, inheritance easy to prototype applications hides details of underlying machine Scheme mid-1970s, Guy Steele, Gerald Sussman (MIT) Static scoping and first-class functions CS 314, LS,LTM: L1: Introduction 36
33 History of PLs Concurrent Pascal 1976 Per Brinch Hansen (U Syracuse) designed for asynchronous concurrent processing [Pascal] monitors for safe data sharing Modula 1977 N. Wirth (ETH), designed language for large software development [Pascal] to control interfaces between sets of procedures or modules real-time programming Ada 1979, US DoD committee designed as general purpose PL explicit parallelism - rendezvous exception handling and generics (packages) CS 314, LS,LTM: L1: Introduction 37
34 History of PLs C , Bjorne Stroustrup (Bell Labs) general purpose goal of type-safe object-oriented PL compile-time type checking templates Java ~1995, J. Gosling (SUN) aimed at portability across platform through use of JVM - abstract machine to implement the PL aimed to fix some problems with previous OOPLs multiple inheritance static and dynamic objects ubiquitous exceptions thread objects CS 314, LS,LTM: L1: Introduction 38
35 oreilly.com/pub/a/.com/pub/a/oreilly/news/languageposter_0504.html CS 314, LS,LTM: L1: Introduction 39
Lecture 1: Introduction
Programming Languages Lecture 1: Introduction Benjamin J. Keller Department of Computer Science, Virginia Tech Programming Languages Lecture 1 Introduction 2 Lecture Outline Preview History of Programming
More informationProgramming Languages
Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:
More informationCSC 272 - Software II: Principles of Programming Languages
CSC 272 - Software II: Principles of Programming Languages Lecture 1 - An Introduction What is a Programming Language? A programming language is a notational system for describing computation in machine-readable
More informationCSE 307: Principles of Programming Languages
Course Organization Introduction CSE 307: Principles of Programming Languages Spring 2015 R. Sekar Course Organization Introduction 1 / 34 Topics 1. Course Organization Info and Support Course Description
More informationCSCI 3136 Principles of Programming Languages
CSCI 3136 Principles of Programming Languages Faculty of Computer Science Dalhousie University Winter 2013 CSCI 3136 Principles of Programming Languages Faculty of Computer Science Dalhousie University
More informationWhat is a programming language?
Overview Introduction Motivation Why study programming languages? Some key concepts What is a programming language? Artificial language" Computers" Programs" Syntax" Semantics" What is a programming language?...there
More informationn Introduction n Art of programming language design n Programming language spectrum n Why study programming languages? n Overview of compilation
Lecture Outline Programming Languages CSCI-4430 & CSCI-6430, Spring 2016 www.cs.rpi.edu/~milanova/csci4430/ Ana Milanova Lally Hall 314, 518 276-6887 milanova@cs.rpi.edu Office hours: Wednesdays Noon-2pm
More informationChapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages
Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming
More informationProgramming language concepts
Programming language concepts Third edition Carlo Ghezzi, Politecnico di Milano Mehdi Jazayeri, Technische Universität Wien John Wiley & Sons New York Chichester Brisbane Toronto Singapore 2 Chap. Copyright
More informationAnnouncements FORTRAN ALGOL COBOL. Simula & Smalltalk. Programming Languages
Announcements Programming Languages! Monday evening GBA section has been shut down " If you were assigned to this section, please find a different section " If you cannot attend a different section, please
More informationLanguage Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages
ICOM 4036 Programming Languages Preliminaries Dr. Amirhossein Chinaei Dept. of Electrical & Computer Engineering UPRM Spring 2010 Language Evaluation Criteria Readability: the ease with which programs
More information1.1 WHAT IS A PROGRAMMING LANGUAGE?
1 INTRODUCTION 1.1 What is a Programming Language? 1.2 Abstractions in Programming Languages 1.3 Computational Paradigms 1.4 Language Definition 1.5 Language Translation 1.6 Language Design How we communicate
More informationChapter 6: Programming Languages
Chapter 6: Programming Languages Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Chapter 6: Programming Languages 6.1 Historical Perspective
More informationHistory of Programming Languages
History History of Programming Languages Early History : The first programmers The 1940s: Von Neumann and Zuse The 1950s: The First Programming Language The 1960s: An Explosion in Programming languages
More informationFunctional Programming. Functional Programming Languages. Chapter 14. Introduction
Functional Programming Languages Chapter 14 Introduction Functional programming paradigm History Features and concepts Examples: Lisp ML 1 2 Functional Programming Functional Programming Languages The
More informationProgramming Language Pragmatics
Programming Language Pragmatics THIRD EDITION Michael L. Scott Department of Computer Science University of Rochester ^ШШШШШ AMSTERDAM BOSTON HEIDELBERG LONDON, '-*i» ЩЛ< ^ ' m H NEW YORK «OXFORD «PARIS»SAN
More informationEvolution of the Major Programming Languages
142 Evolution of the Major Programming Languages Object Oriented Programming: Smalltalk Object-Oriented: It s fundamental characteristics are: Data abstraction, Inheritance and Dynamic Binding. The essence
More informationCSE 130 Programming Language Principles & Paradigms
CSE 130 Programming Language Principles & Paradigms Thomas A. Powell tpowell@pint.com Housekeeping Syllabus review Direct class page link http://www.pint.com/classes/cse130 Updated syllabus, notes, homework
More informationFunctional Programming
FP 2005 1.1 3 Functional Programming WOLFRAM KAHL kahl@mcmaster.ca Department of Computing and Software McMaster University FP 2005 1.2 4 What Kinds of Programming Languages are There? Imperative telling
More information1/20/2016 INTRODUCTION
INTRODUCTION 1 Programming languages have common concepts that are seen in all languages This course will discuss and illustrate these common concepts: Syntax Names Types Semantics Memory Management We
More informationFall 2012 Q530. Programming for Cognitive Science
Fall 2012 Q530 Programming for Cognitive Science Aimed at little or no programming experience. Improve your confidence and skills at: Writing code. Reading code. Understand the abilities and limitations
More informationDivision of Mathematical Sciences
Division of Mathematical Sciences Chair: Mohammad Ladan, Ph.D. The Division of Mathematical Sciences at Haigazian University includes Computer Science and Mathematics. The Bachelor of Science (B.S.) degree
More informationSemester Review. CSC 301, Fall 2015
Semester Review CSC 301, Fall 2015 Programming Language Classes There are many different programming language classes, but four classes or paradigms stand out:! Imperative Languages! assignment and iteration!
More informationCh. 10 Software Development. (Computer Programming)
Ch. 10 Software Development (Computer Programming) 1 Definitions Software or Program Instructions that tell the computer what to do Programmer Someone who writes computer programs 2 Instruction Set A vocabulary
More informationMcGraw-Hill The McGraw-Hill Companies, Inc., 20 1. 01 0
1.1 McGraw-Hill The McGraw-Hill Companies, Inc., 2000 Objectives: To describe the evolution of programming languages from machine language to high-level languages. To understand how a program in a high-level
More informationThe Evolution of Programming Languages
The Evolution of Programming Languages Course Notes for COMP 348 and COMP 6411 These notes may be copied for students who are taking either COMP 348 Principles of Programming Languages or COMP 6411 Comparative
More informationHigh-Level Programming Languages. Nell Dale & John Lewis (adaptation by Michael Goldwasser)
High-Level Programming Languages Nell Dale & John Lewis (adaptation by Michael Goldwasser) Low-Level Languages What are disadvantages of low-level languages? (e.g., machine code or assembly code) Programming
More informationUnderstanding Programming Languages
Understanding Programming Languages M. Ben-Ari Weizmann Institute of Science Originally published by John Wiley & Sons, Chichester, 1996. Copyright c 2006 by M. Ben-Ari. You may download, display and print
More informationChapter 13 Computer Programs and Programming Languages. Discovering Computers 2012. Your Interactive Guide to the Digital World
Chapter 13 Computer Programs and Programming Languages Discovering Computers 2012 Your Interactive Guide to the Digital World Objectives Overview Differentiate between machine and assembly languages Identify
More informationChapter 13: Program Development and Programming Languages
Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented
More informationChapter 5 Names, Bindings, Type Checking, and Scopes
Chapter 5 Names, Bindings, Type Checking, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Type Checking Strong Typing Scope Scope and Lifetime Referencing Environments Named
More informationLanguage Processing Systems
Language Processing Systems Evaluation Active sheets 10 % Exercise reports 30 % Midterm Exam 20 % Final Exam 40 % Contact Send e-mail to hamada@u-aizu.ac.jp Course materials at www.u-aizu.ac.jp/~hamada/education.html
More informationStatic vs. Dynamic. Lecture 10: Static Semantics Overview 1. Typical Semantic Errors: Java, C++ Typical Tasks of the Semantic Analyzer
Lecture 10: Static Semantics Overview 1 Lexical analysis Produces tokens Detects & eliminates illegal tokens Parsing Produces trees Detects & eliminates ill-formed parse trees Static semantic analysis
More informationConcepts of Programming Languages: A Unified Approach. Karl Abrahamson
Concepts of Programming Languages: A Unified Approach Karl Abrahamson August 2013 2 Copyright (c) 2013 Karl Abrahamson. Contents 1 Introduction to Programming Languages 11 1.1 Programming languages.............................
More information02 B The Java Virtual Machine
02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual
More informationProgramming Languages
Programming Languages Programming languages bridge the gap between people and machines; for that matter, they also bridge the gap among people who would like to share algorithms in a way that immediately
More informationAdvanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz 2007 03 16
Advanced compiler construction Michel Schinz 2007 03 16 General course information Teacher & assistant Course goals Teacher: Michel Schinz Michel.Schinz@epfl.ch Assistant: Iulian Dragos INR 321, 368 64
More informationMoving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
More informationAsogwa Tochukwu Chijindu Department of Computer Engineering, Enugu State University of Science and Technology(ESUT), Enugu, Nigeria.
Evolutionary Trend In The Development Of Computer Programming Languages And Concepts Dr.Onu Fergus.U. Department of Computer Science, Ebonyi State University, Abakaliki, Nigeria. Asogwa Tochukwu Chijindu
More informationDEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING
DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING Fall 2000 The instructions contained in this packet are to be used as a guide in preparing the Departmental Computer Science Degree Plan Form for the Bachelor's
More informationObject-Oriented Software Specification in Programming Language Design and Implementation
Object-Oriented Software Specification in Programming Language Design and Implementation Barrett R. Bryant and Viswanathan Vaidyanathan Department of Computer and Information Sciences University of Alabama
More informationTopics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
More informationCompiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding
Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects
More informationCOS 301 Programming Languages
Preliminaries COS 301 Programming Languages Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories
More informationComputer Science/Software Engineering
292 School of Science and Engineering Computer Science/Software Engineering Everald E. Mills, PhD, Chair Objectives The computer science program seeks to prepare students for careers that require sophisticated
More informationCompilers. Introduction to Compilers. Lecture 1. Spring term. Mick O Donnell: michael.odonnell@uam.es Alfonso Ortega: alfonso.ortega@uam.
Compilers Spring term Mick O Donnell: michael.odonnell@uam.es Alfonso Ortega: alfonso.ortega@uam.es Lecture 1 to Compilers 1 Topic 1: What is a Compiler? 3 What is a Compiler? A compiler is a computer
More informationCourse Goal CMSC 330: Organization of Programming Languages. Studying Programming Languages. All Languages Are (Kind of) Equivalent.
Course Goal CMSC 330: Organization of Programming Languages Introduction Instructors: Michael Hicks and Anwar Mamat Learn how programming languages work Broaden your language horizons Different programming
More informationStructure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1
The Role of Programming in Informatics Curricula A. J. Cowling Department of Computer Science University of Sheffield Structure of Presentation Introduction The problem, and the key concepts. Dimensions
More informationCompiler Construction
Compiler Construction Lecture 1 - An Overview 2003 Robert M. Siegfried All rights reserved A few basic definitions Translate - v, a.to turn into one s own language or another. b. to transform or turn from
More informationHow to make the computer understand? Lecture 15: Putting it all together. Example (Output assembly code) Example (input program) Anatomy of a Computer
How to make the computer understand? Fall 2005 Lecture 15: Putting it all together From parsing to code generation Write a program using a programming language Microprocessors talk in assembly language
More informationGlossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
More informationChapter 13: Program Development and Programming Languages
15 th Edition Understanding Computers Today and Tomorrow Comprehensive Chapter 13: Program Development and Programming Languages Deborah Morley Charles S. Parker Copyright 2015 Cengage Learning Learning
More informationDepartment of Computer Science
The University of Texas at San Antonio 1 Department of Computer Science The Department of Computer Science offers a Bachelor of Science degree in Computer Science and a Minor in Computer Science. Admission
More information1 Idioms, Patterns, and Programming
1 Idioms, Patterns, and Programming Chapter Objectives Chapter Contents This chapter introduces the ideas that we use to organize our thinking about languages and how they shape the design and implementation
More informationCS 51 Intro to CS. Art Lee. September 2, 2014
CS 51 Intro to CS Art Lee September 2, 2014 Announcements Course web page at: http://www.cmc.edu/pages/faculty/alee/cs51/ Homework/Lab assignment submission on Sakai: https://sakai.claremont.edu/portal/site/cx_mtg_79055
More informationComputer Programming I
Computer Programming I COP 2210 Syllabus Spring Semester 2012 Instructor: Greg Shaw Office: ECS 313 (Engineering and Computer Science Bldg) Office Hours: Tuesday: 2:50 4:50, 7:45 8:30 Thursday: 2:50 4:50,
More informationDatabase trends: XML data storage
Database trends: XML data storage UC Santa Cruz CMPS 10 Introduction to Computer Science www.soe.ucsc.edu/classes/cmps010/spring11 ejw@cs.ucsc.edu 25 April 2011 DRC Students If any student in the class
More informationTHE ROLE OF PROGRAMMING PARADIGMS IN THE FIRST PROGRAMMING COURSES. 1. Introduction
THE TEACHING OF MATHEMATICS 2008, Vol. XI, 2, pp. 63 83 THE ROLE OF PROGRAMMING PARADIGMS IN THE FIRST PROGRAMMING COURSES Milena Vujošević-Janičić and Dušan Tošić Abstract. The choice of the first programming
More informationOn the (un)suitability of Java to be the first programming language
On the (un)suitability of Java to be the first programming language Mirjana Ivanovic Faculty of Science, Department of Mathematics and Informatics Trg Dositeja Obradovica 4, Novi Sad mira @im.ns.ac.yu
More informationChapter 15 Functional Programming Languages
Chapter 15 Functional Programming Languages Introduction - The design of the imperative languages is based directly on the von Neumann architecture Efficiency (at least at first) is the primary concern,
More informationProgramming Languages
Programming Languages In the beginning To use a computer, you needed to know how to program it. Today People no longer need to know how to program in order to use the computer. To see how this was accomplished,
More informationProgramming Language Concepts for Software Developers
Programming Language Concepts for Software Developers Peter Sestoft IT University of Copenhagen, Denmark sestoft@itu.dk Abstract This note describes and motivates our current plans for an undergraduate
More informationCurriculum Map. Discipline: Computer Science Course: C++
Curriculum Map Discipline: Computer Science Course: C++ August/September: How can computer programs make problem solving easier and more efficient? In what order does a computer execute the lines of code
More informationATSBA: Advanced Technologies Supporting Business Areas. Programming with Java. 1 Overview and Introduction
ATSBA: Advanced Technologies Supporting Business Areas Programming with Java 1 Overview and Introduction 1 1 Overview and Introduction 1 Overview and Introduction 1.1 Programming and Programming Languages
More informationHandout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.
Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java
More informationDatavetenskapligt Program (kandidat) Computer Science Programme (master)
Datavetenskapligt Program (kandidat) Computer Science Programme (master) Wolfgang Ahrendt Director Datavetenskap (BSc), Computer Science (MSc) D&IT Göteborg University, 30/01/2009 Part I D&IT: Computer
More informationEvolution of the Major Programming Languages
2 Evolution of the Major Programming Languages 2.1 Zuse s Plankalkül 2.2 Minimal Hardware Programming: Pseudocodes 2.3 The IBM 704 and Fortran 2.4 Functional Programming: LISP 2.5 The First Step Toward
More informationC Compiler Targeting the Java Virtual Machine
C Compiler Targeting the Java Virtual Machine Jack Pien Senior Honors Thesis (Advisor: Javed A. Aslam) Dartmouth College Computer Science Technical Report PCS-TR98-334 May 30, 1998 Abstract One of the
More informationprogramming languages, programming language standards and compiler validation
Software Quality Issues when choosing a Programming Language C.J.Burgess Department of Computer Science, University of Bristol, Bristol, BS8 1TR, England Abstract For high quality software, an important
More informationProgramming Languages
CS 345 Programming Languages Vitaly Shmatikov http://www.cs.utexas.edu/~shmat/courses/cs345/ slide 1 Course Personnel Instructor: Vitaly Shmatikov Office: CSA 1.114 Office hours: Tuesday, 3:30-4:30pm (after
More informationLecture 9. Semantic Analysis Scoping and Symbol Table
Lecture 9. Semantic Analysis Scoping and Symbol Table Wei Le 2015.10 Outline Semantic analysis Scoping The Role of Symbol Table Implementing a Symbol Table Semantic Analysis Parser builds abstract syntax
More informationCS 140: Introduction to Computer Science A Brief History of Computer Science. Edwin Rodríguez
CS 140: Introduction to Computer Science A Brief History of Computer Science Edwin Rodríguez Cal Poly Pomona Department of Computer Science CS 140 - A Brief History of Computer Science / 1 What is Computing
More informationImage credits: http://xkcd.com/353/
Image credits: http://xkcd.com/353/ CS 354: Programming Languages Alark Joshi Copyright 2009 Addison-Wesley. All rights reserved. Contact Information Email: alarkjoshi@boisestate.edu Course Website: o
More informationScoping (Readings 7.1,7.4,7.6) Parameter passing methods (7.5) Building symbol tables (7.6)
Semantic Analysis Scoping (Readings 7.1,7.4,7.6) Static Dynamic Parameter passing methods (7.5) Building symbol tables (7.6) How to use them to find multiply-declared and undeclared variables Type checking
More informationCompiler I: Syntax Analysis Human Thought
Course map Compiler I: Syntax Analysis Human Thought Abstract design Chapters 9, 12 H.L. Language & Operating Sys. Compiler Chapters 10-11 Virtual Machine Software hierarchy Translator Chapters 7-8 Assembly
More informationHow To Understand Programming Languages And Programming Languages
Objectives Differentiate between machine and and assembly languages Describe Describe various various ways ways to to develop develop Web Web pages pages including including HTML, HTML, scripting scripting
More informationCOMPUTER SCIENCE. 1. Computer Fundamentals and Applications
COMPUTER SCIENCE 1. Computer Fundamentals and Applications (i)generation of Computers, PC Family of Computers, Different I/O devices;introduction to Operating System, Overview of different Operating Systems,
More informationProgramming Languages in Artificial Intelligence
Programming Languages in Artificial Intelligence Günter Neumann, German Research Center for Artificial Intelligence (LT Lab, DFKI) I. AI programming languages II. Functional programming III. Functional
More informationData Abstraction and Hierarchy
Data Abstraction and Hierarchy * This research was supported by the NEC Professorship of Software Science and Engineering. Barbara Liskov Affiliation: MIT Laboratory for Computer Science Cambridge, MA,
More informationSemantic Analysis: Types and Type Checking
Semantic Analysis Semantic Analysis: Types and Type Checking CS 471 October 10, 2007 Source code Lexical Analysis tokens Syntactic Analysis AST Semantic Analysis AST Intermediate Code Gen lexical errors
More informationLevels of Programming Languages. Gerald Penn CSC 324
Levels of Programming Languages Gerald Penn CSC 324 Levels of Programming Language Microcode Machine code Assembly Language Low-level Programming Language High-level Programming Language Levels of Programming
More informationADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science
ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science Program Schedule CTech Computer Science Credits CS101 Computer Science I 3 MATH100 Foundations of Mathematics and
More informationOn the Design of an Object Oriented Programming Language
On the Design of an Object Oriented Programming Language Mokua Richard MSc, Dept. of Computing, ICSIT, JKUAT, Kenya ABSTRACT: This paper presents work done to address two issues of interest to both Programming
More informationEd. v1.0 PROGRAMMING LANGUAGES WORKING PAPER DRAFT PROGRAMMING LANGUAGES. Ed. v1.0
i PROGRAMMING LANGUAGES ii Copyright 2011 Juhász István iii COLLABORATORS TITLE : PROGRAMMING LANGUAGES ACTION NAME DATE SIGNATURE WRITTEN BY István Juhász 2012. március 26. Reviewed by Ágnes Korotij 2012.
More informationLexical analysis FORMAL LANGUAGES AND COMPILERS. Floriano Scioscia. Formal Languages and Compilers A.Y. 2015/2016
Master s Degree Course in Computer Engineering Formal Languages FORMAL LANGUAGES AND COMPILERS Lexical analysis Floriano Scioscia 1 Introductive terminological distinction Lexical string or lexeme = meaningful
More informationOrganization of Programming Languages CS320/520N. Lecture 05. Razvan C. Bunescu School of Electrical Engineering and Computer Science bunescu@ohio.
Organization of Programming Languages CS320/520N Razvan C. Bunescu School of Electrical Engineering and Computer Science bunescu@ohio.edu Names, Bindings, and Scopes A name is a symbolic identifier used
More informationCS 40 Computing for the Web
CS 40 Computing for the Web Art Lee January 20, 2015 Announcements Course web on Sakai Homework assignments submit them on Sakai Email me the survey: See the Announcements page on the course web for instructions
More informationCharacteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
More informationParsing Technology and its role in Legacy Modernization. A Metaware White Paper
Parsing Technology and its role in Legacy Modernization A Metaware White Paper 1 INTRODUCTION In the two last decades there has been an explosion of interest in software tools that can automate key tasks
More informationCOURSE CODE: CSC 411 Organization of Programming Languages
COURSE CODE: CSC 411 COURSE TITLE: Organization of Programming Languages NUMBER OF Units: 3 Units Course Duration: Three hours per week COURSE DETAILS: Course Lecturer: Dr. O. Folorunso B.Sc(UNAAB)., M.Sc(UNILAG).,
More informationEastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students
Eastern Washington University Department of Computer Science Questionnaire for Prospective Masters in Computer Science Students I. Personal Information Name: Last First M.I. Mailing Address: Permanent
More informationSchool of Computer Science
School of Computer Science Computer Science - Honours Level - 2014/15 October 2014 General degree students wishing to enter 3000- level modules and non- graduating students wishing to enter 3000- level
More informationThe First Report on Scheme Revisited
Higher-Order and Symbolic Computation, 11, 399 404 (1998) c 1998 Kluwer Academic Publishers, Boston. Manufactured in The Netherlands. The First Report on Scheme Revisited GERALD JAY SUSSMAN Massachusetts
More informationOn Understanding Types, Data Abstraction, and Polymorphism
1 Computing Surveys, Vol 17 n. 4, pp 471-522, December 1985 On Understanding Types, Data Abstraction, and Polymorphism Luca Cardelli AT&T Bell Laboratories, Murray Hill, NJ 07974 (current address: DEC
More informationCharles Dierbach. Wiley
Charles Dierbach Wiley Contents Preface Acknowledgments About the Author XXI xxv xxvii Introduction 1 MOTIVATION 2 FUNDAMENTALS 2 1.1 What Is Computer Science? 2 1.1.1 The Essence of Computational Problem
More information02-201: Programming for Scientists
1. Course Information 1.1 Course description 02-201: Programming for Scientists Carl Kingsford Fall 2015 Provides a practical introduction to programming for students with little or no prior programming
More informationHello World: An Instance Rhetoric in Computer Science
Hello World: An Instance Rhetoric in Computer Science John Mount: jmount@mzlabs.com February 19, 2008 Computer scientists have usually dodged questions of intent, purpose or meaning. While there are theories
More informationArtificial Intelligence. Class: 3 rd
Artificial Intelligence Class: 3 rd Teaching scheme: 4 hours lecture credits: Course description: This subject covers the fundamentals of Artificial Intelligence including programming in logic, knowledge
More information