SCAN: Computer Science - second year. Christian Wolf

Size: px
Start display at page:

Download "SCAN: Computer Science - second year. Christian Wolf"

Transcription

1 SCAN: Computer Science - second year Christian Wolf

2 Plan 1 Introduction 2 Languages 3 Development methodologies 4 Debugging 5 Separated compilation : units christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 2 / 39

3 Who am I? Contact : Christian Wolf christian.wolf@insa-lyon.fr Tél : Teaching : Computer Science 2nd year : lectures in computer science for SCAN 3rd year : department of computer science Computer architecture (micro processor design) Design and implementation of network protocolls Research : Image processing and pattern recognition (Virtual) restoration of document images Optical word Recognition christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 3 / 39

4 Contents of the second year Advanced concepts in Algorithmics Development methodologies Separated compilation of different files Pointers and dynamic data structures (lists, graphs) Introduction to event based programming and user interface design (UID) Object oriented programming Design and implementation of a major graphical application (project) christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 4 / 39

5 The means Timetable : One 2h session per week 7 lectures 4 TD 13 TD 6 sessions for the mini project Evaluation - grades for : Mid term exam (interro) Final exam (DS) graded mini project christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 5 / 39

6 Plan 1 Introduction 2 Languages 3 Development methodologies 4 Debugging 5 Separated compilation : units christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 6 / 39

7 Interpreted languages A program written in an interpreted language needs an auxiliary program, called interpreter, which translates the instructions line after line into machine code. Only machine code is understood by the processor. Interpretation cycles : Read and analyze an instruction If the syntax of the instruction is correct, execute it ANALYSIS/EXECUTION a = sqrt(b); B = speed_matrix *V(4,:); plot (x, B, k, LineWidth, 3); ANALYSIS/EXECUTION ANALYSIS/EXECUTION ANALYSIS/EXECUTION Examples : Matlab, Maple, Perl, Python, Ruby, Javascript Advantages : rapid development cycle (no compilation) Disadvantages : slow execution christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 7 / 39

8 Compiled languages A program written in a compiled language is translated once, by a program called compiler, into an executable file different from the source file. Execution of the program does not need a translation anymore. a := sqrt(b); B = mul(transp(speed),v); line_to (x, B); COMPILER Examples : Pascal, C, C++, Fortran, Advantages : fast execution ; compiler not needed for execution Disadvantages : slow development cycle : each change of the program needs a new compilation christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 8 / 39

9 Languages Language Domain Comp./Interp. ADA Real time, military compiled BASIC indicated by its name... interpreted C system programming compiled C++ object oriented system programming compiled COBOL Business, reporting compiled Fortran Scientific computing compiled Java Portable computing (e.g. internet) intermediate MATLAB Scientific computing (numeric) interpreted Maple Scientific computing (symbolic) interpreted LISP Artificial intelligence intermediate Pascal Teaching compiled Prolog Artificial intelligence interpreted Perl String processing interpreted christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 9 / 39

10 Plan 1 Introduction 2 Languages 3 Development methodologies 4 Debugging 5 Separated compilation : units christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 10 / 39

11 Lifecycles in software development TYPE THE PROGRAM PROBLEM SOLUTION SPECIFICATION ANALYSIS IMPLEMENTATION TEST SCAN: Computer Science - second year 11 / 39

12 Syntax maps (1) Phrase Preposition Subject Verb Complement in Article the Subject a Article Noun Verb is are Complement Noun Fox Preposition Article Noun Foxes House christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 12 / 39

13 Syntax maps (2) Which of these phrases are syntactically correct? The Fox is in the house The Foxes are in the house The Fox are in the house In the House is the Fox The Fox is a Fox The Foxes is in the house A Fox is a fox christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 13 / 39

14 From the sources to the executable program TOTO.PAS TOTO.O TOTO a := sqrt(b); B = mul(transp(speed),v); line_to (x, B); COMPILER LINKER SYSUTILS.PPU Compilation Lexical analysis Syntaxic analysis Translation of the source statements into machine instructions Linkage : creation of a single executable linking together : One or several object file(s) Eventual third party libraries System libraries (input/output etc.) The executable file is independent!! christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 14 / 39

15 Example program cycle ; var var1, var2 : integer ; procedure a ; begin var1 := 5; var2 := 10; var1 := var1+var2 ; end ; begin a ; end. (... ) pushl %ebp movl %esp,%ebp movw $5, U_P$CYCLE_VAR1 movw $10, U_P$CYCLE_VAR2 movswl U_P$CYCLE_VAR1,%edx movswl U_P$CYCLE_VAR2,%eax addl %edx,%eax movw %ax, U_P$CYCLE_VAR1 leave r e t christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 15 / 39

16 Compilation stages Stage Operation Result Analysis Translation Production Lexical analysis Syntactical analysis Semantical analysis Instruction selection Register allocation Assembly Register allocation Program source Lexical elements (tokens) Program structure Intermediate representation Assembly language structureobject code (machine code SCAN: Computer Science - second year 16 / 39

17 Compilation : details Analysis and Translation these stages translate the program written in a higher programming language (e.g. Pascal) into a language which is very close to machine language. This part is independent of the target processor, the code is created for an abstract machine. Production this stage depends on the target processor : the abstract code is translated into code for a specific processor. Java : the two phases are separated. Analysis and translation are executed during compilation, production is executed in the target (e.g. webbrowser or mobile phone). christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 17 / 39

18 Linkage : details Several modules are linked together (object files), libraries, system code... Each module may provide ( export ) a set of functions and/or variables Each module may access to the exported functions and variables The linker connects the access instructions to the correct addresses for function calls and/or read/write operations. christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 18 / 39

19 Integrated Development Environments (IDE) A software which integrates several functionalities specific to software development : An editor designed for the specific programming language A compiler A debugger Also : Configuration files Examples Libraries Documentation and help files... christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 19 / 39

20 Plan 1 Introduction 2 Languages 3 Development methodologies 4 Debugging 5 Separated compilation : units christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 20 / 39

21 Error types TOTO.PAS TOTO.O TOTO a := sqrt(b); B = mul(transp(speed),v); line_to (x, B); COMPILER LINKER SYSUTILS.PPU Compilation : Lexical and syntactical errors Linkage : Missing libraries, errors in the interface Execution : Semantical errors christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 21 / 39

22 How to debug a program A sort routine including a bug : Var i, j : integer ; cnt : integer ; begin For i :=2 to N do begin cnt := T [ i ] ; j := i 1; While ( j >0) and ( cnt <T [ j ] ) do begin T [ j ] :=T [ j +1 ] ; j := j 1 end ; T [ j +1] := cnt end ; end ; Input array : Expected array : Output array : christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 22 / 39

23 How to debug a program (1 st ) Answer : Normally it is sufficient to watch the contents of some key variables during the execution of the program. 1 st technique : add some output instructions ( writeln ) to the code which displays the variables, and remove them when the problem has been found. Disadvantage : the code needs to be changed. takes time risk of adding further bugs christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 23 / 39

24 How to debug a program (1 st ) Var i, j, k : integer ; cnt : integer ; T : t _ t a b ; begin For i :=2 to N do begin cnt := T [ i ] ; w r i t e l n ( cnt, at p o s i t i o n, i ) ; j := i 1; While ( j > 0) and ( cnt < T [ j ] ) do begin T [ j ] :=T [ j +1 ] ; j := j 1 end ; T [ j +1] := cnt ; w r i t e l n ( number i s now at p o s i t i o n, j + 1 ) ; for k :=1 to N do w r i t e ( T [ k ], ) ; readln end ; for i :=1 to N do w r i t e ( T [ i ], ) ; readln end. christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 24 / 39

25 How to debug a program (1 st ) Problem with the update of the offset in the array!! christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 25 / 39

26 How to debug a program (2 nd ) 2 nd technique : conditional compilation { $DEFINE Debug } / / D e f i n i n g whether we debug or not { $IFDEF Debug } / / t h i s code i s executed Writeln ( Debug a c t i v e. ) ; {$ELSE} / / t h i s code i s not executed ( the code w i l l / / not even be compiled!! Writeln ( Debug not a c t i v e. ) ; { $ENDIF } {$UNDEF Debug } / / suppression de l a c o n d i t i o n Compilation instructions are special instructions beginning with $ : they allow to control the compiler. christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 26 / 39

27 How to debug a program (3 rd ) 3 rd technique : usage of a debugger : Set breakpoints into the program Ask to display ( watch ) the contents of key variables Continue to execute the program at different speeds : up to the next breakpoint procedure by procedure instruction by instruction... The code of the program is not changed! christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 27 / 39

28 Plan 1 Introduction 2 Languages 3 Development methodologies 4 Debugging 5 Separated compilation : units christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 28 / 39

29 Seperated compilation : units Motivation : Regroup into separated modules the data and processing (procedures and functions) necessary for a specific part of the program, for instance a specific subject. Identifying these modules is an important part of the Analysis step of the software development life cycles. Advantages : Avoids (or makes them less frequent) the situation of multiple people working on the same files. Makes the code more browsable - relevant parts are found easier Makes the code more readable - small units are easier to understand than large sections of code christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 29 / 39

30 Calculating and drawing an ellipse Program Ellipse ; Type TCoord = Record x : Real ; y : Real ; End ; TCurve =Record NbPts : Integer ; Data : Array [ ] of TCoord End ; Function C a l c E l l i p s e ( rx, ry : real ) : TCurve ; Begin... ( Calculate the e l l i p s e ) End ; Procedure DrawCurve ( A : TCurve ) ; Begin... ( Draw the curve ) End ; Var TabPoints : TCurve ; RayonX, RayonY : real ; Begin... ( Enter the dimensions ) TabPoints := CalcEllipse ( RayonX, RayonY ) ; DrawCurve ( TabPoints ) ; End. christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 30 / 39

31 Calculating and drawing an square Program Square ; Type TCoord = Record x : Real ; y : Real ; End ; TSquare =Record NbPts : Integer ; Data : Array [ ] of TCoord End ; Function CalcSquare ( rx, ry : real ) : TCurve ; Begin... ( Calculate the square ) End ; Procedure DrawCurve ( A : TCurve ) ; Begin... ( Draw the curve ) End ; Var TabPoints : TCurve ; RayonX, RayonY : real ; Begin... ( Enter the dimensions ) TabPoints := CalcSquare ( RayonX, RayonY ) ; DrawCurve ( TabPoints ) ; End. Inefficient modifications, risk of introducing new errors!!! christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 31 / 39

32 Solution : separate code into units Unit Curves ; I n t e r f a c e Type TCoord = Record x : Real ; y : Real end ; TCurve = Record NbPts : Integer ; Data : Array [ ] of TCoord ; End ; Procedure DrawCurve ( A : TCurve ) ; Implementation Procedure DrawCurve ( A : TCurve ) ; Begin... ( Draw the curve ) End ; End. Program Square ; Uses Curves ; Fonction CalcSquare ( rx : real ) : TCurve ; Begin... ( Calculate the square ) End ; Var TabPoints : TCurve ; coté : real ; Begin... ( Enter the dimensions ) TabPoints := CalcSquare ( Coté ) ; DrawCurve ( TabPoints ) ; End. Program E l l i p s e ; Uses Curves ; Fonction C a l c E l l i p s e ( rx : real ) : TCurve ; Begin... ( Calculate the e l l i p s e ) End ; Var TabPoints : TCurve ; coté : real ; Begin... ( Enter the dimensions ) TabPoints := C a l c E l l i p s e ( Coté ) ; DrawCurve ( TabPoints ) ; End. christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 32 / 39

33 Syntax of a unit D e c l a r a t i o n of the Unit I n t e r f a c e ( Data types and v a r i a b l e s defined here are v i s i b l e to a l l units and programs which i n c l u d e t h i s u n i t with the " Uses " statement. V i s i b l e procedures and f u n c t i o n s must be declared here ( header only ). ) Unit Curves ; I n t e r f a c e Type TCoord = Record x : Real ; y : Real end ; TCurve = Record NbPts : Integer ; Data : Array [ ] of TCoord ; End ; Procedure DrawCurve ( A : TCurve ) ; Implementation ( Data types and v a r i a b l e s defined here are v i s i b l e to t h i s u n i t only. V i s i b l e procedures and f u n c t i o n s must be implemented here. ) Implementation Procedure DrawCurve ( A : TCurve ) ; Begin... ( Draw the curve ) End ; End. christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 33 / 39

34 Syntax of a unit : optional functionality Unit Curves ; I n t e r f a c e... Implementation... I n i t i a l i z a t i o n ( Code c a l l e d when the Unit i s loaded ) F i n a l i z a t i o n ( Code c a l l e d when the Unit i s un loaded ) End. christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 34 / 39

35 Visibiltiy of units (1) Unit UnitA ; I n t e r f a c e Procedure X ( A : Integer ) ; Implementation Procedure X ( A : Integer ) ; Begin... End ; End. Unit UnitB ; I n t e r f a c e Procedure X ( A, B : Real ) ; Implementation Procedure X ( A, B : Real ) ; Begin... End ; End. The declaration of X in Unit B overshadows the declaration of X in Unit A. Program Demo; Uses UnitA, UnitB ; Begin X( 1. 5, 2. 5 ) ; ( C o r r e c t ) X ( 1 ) ; ( E r r o r ) End. christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 35 / 39

36 Visibiltiy of units (2) Unit UnitA ; I n t e r f a c e Procedure ProcA ; Implementation... End. Unit UnitB ; I n t e r f a c e Uses UnitA Procedure ProcB ; Implementation... End. Procedure A is visible to Unit B only, not to the main program. Program Test ; Uses UnitB ; Begin ProcB ; ( Correct ) ProcA ; ( e r r o r ) End. christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 36 / 39

37 From the sources to the executable program (2) MAINPROG.PAS MAINPROG.O a := sqrt(b); B = mul(transp(speed),v); line_to (x, B); COMPILER UNITFOO.PAS UNITFOO.O a := sqrt(b); B = mul(transp(speed),v); line_to (x, B); COMPILER MAINPROG UNITBAR.PAS UNITBAR.O LINKER a := sqrt(b); B = mul(transp(speed),v); line_to (x, B); COMPILER SYSUTILS.PPU Only one souce file may contain the main program, all other files must be units! christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 37 / 39

38 Project management Separate compilation requires the management of several files, in practical applications a very large number of files. Integrated Development Environments (IDE) work in terms of projects. Instead of single source files, the user opens a project : All source files All resource files (graphical user interfaces, images, logos, configuration files of the application) The configuration of the project (editor, compiler, linker and debugger settings,...) Possible support of version control systems Examples : C++ : C++ Builder, Visual C++, Eclipse, Kdevelop Pascal : Delphi, Lazarus Java : J++ Builder, Eclipse christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 38 / 39

39 IDE at INSA (Scan) During the 2 nd year we will use Lazarus. Advantages : Open source software Freeware Portable and multi-platforme (Windows, Linux) Supports object oriented programming. Allows the design of graphical user interfaces : fully compatible to the widely used commercial product Borland Delphi. Available for download on the website of the first cycle s IT center (cipcnet). christian.wolf@insa-lyon.fr SCAN: Computer Science - second year 39 / 39

Compiling and Interpreting Programming. Overview of Compilers and Interpreters

Compiling and Interpreting Programming. Overview of Compilers and Interpreters Copyright R.A. van Engelen, FSU Department of Computer Science, 2000 Overview of Compilers and Interpreters Common compiler and interpreter configurations Virtual machines Integrated programming environments

More information

COP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher

COP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher COP4020 ming Languages Compilers and Interpreters Robert van Engelen & Chris Lacher Overview Common compiler and interpreter configurations Virtual machines Integrated development environments Compiler

More information

Principles of Programming Languages. Lecture Outline

Principles of Programming Languages. Lecture Outline Principles of Programming Languages CS 492 Lecture 1 Based on Notes by William Albritton 1 Lecture Outline Reasons for studying concepts of programming languages Programming domains Language evaluation

More information

CS 314 Principles of Programming Languages

CS 314 Principles of Programming Languages CS 314 Principles of Programming Languages Lecture 13: Names, Scopes and Bindings Zheng (Eddy) Zhang Rutgers University February 28, 2018 Review: Names, Scopes and Binding What s in a name? Each name means

More information

General Concepts. Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design

General Concepts. Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design General Concepts Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design 1 Abstractions in Programming Languages Abstractions hide details that

More information

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG) SKILL AREA 304: Review Programming Language Concept Computer Programming (YPG) 304.1 Demonstrate an Understanding of Basic of Programming Language 304.1.1 Explain the purpose of computer program 304.1.2

More information

COMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou

COMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou COMP-421 Compiler Design Presented by Dr Ioanna Dionysiou Administrative! Next time reading assignment [ALSU07] Chapters 1,2 [ALSU07] Sections 1.1-1.5 (cover in class) [ALSU07] Section 1.6 (read on your

More information

Chapter 1. Preview. Reason for Studying OPL. Language Evaluation Criteria. Programming Domains

Chapter 1. Preview. Reason for Studying OPL. Language Evaluation Criteria. Programming Domains Chapter 1. Preview Reason for Studying OPL Reason for Studying OPL? Programming Domains Language Evaluation Criteria Language Categories Language Design Trade-Offs Implementation Methods Programming Environments

More information

CST-402(T): Language Processors

CST-402(T): Language Processors CST-402(T): Language Processors Course Outcomes: On successful completion of the course, students will be able to: 1. Exhibit role of various phases of compilation, with understanding of types of grammars

More information

Programmiersprachen (Programming Languages)

Programmiersprachen (Programming Languages) 2016-05-13 Preface Programmiersprachen (Programming Languages) coordinates: lecturer: web: usable for: requirements: No. 185.208, VU, 3 ECTS Franz Puntigam http://www.complang.tuwien.ac.at/franz/ps.html

More information

Why study Programming Language Concepts? Chapter One. Language Evaluation Criteria. Programming Domains. Readability Writability Reliability Cost

Why study Programming Language Concepts? Chapter One. Language Evaluation Criteria. Programming Domains. Readability Writability Reliability Cost Chapter One Preliminaries, including Why study PL concepts? Programming domains PL evaluation criteria What influences PL design? Tradeoffs faced by programming languages Implementation methods Programming

More information

Compilers and Interpreters

Compilers and Interpreters Overview Roadmap Language Translators: Interpreters & Compilers Context of a compiler Phases of a compiler Compiler Construction tools Terminology How related to other CS Goals of a good compiler 1 Compilers

More information

Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful?

Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful? Chapter 1 :: Introduction Introduction Programming Language Pragmatics Michael L. Scott Why are there so many programming languages? evolution -- we've learned better ways of doing things over time socio-economic

More information

The Computer System. Hardware = Physical Computer. Software = Computer Programs. People = End Users & Programmers. people

The Computer System. Hardware = Physical Computer. Software = Computer Programs. People = End Users & Programmers. people The Computer System Hardware = Physical Computer The equipment associated with a computer system. hardware software people The set of instructions that tell a computer what to do. Use the power of the

More information

Chapter 1. Preliminaries

Chapter 1. Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation 1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation Administrivia Lecturer: Kostis Sagonas (kostis@it.uu.se) Course home page: http://www.it.uu.se/edu/course/homepage/komp/h18

More information

LECTURE 1. Overview and History

LECTURE 1. Overview and History LECTURE 1 Overview and History COURSE OBJECTIVE Our ultimate objective in this course is to provide you with the knowledge and skills necessary to create a new programming language (at least theoretically).

More information

1DL321: Kompilatorteknik I (Compiler Design 1)

1DL321: Kompilatorteknik I (Compiler Design 1) Administrivia 1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation Lecturer: Kostis Sagonas (kostis@it.uu.se) Course home page: http://www.it.uu.se/edu/course/homepage/komp/ht16

More information

Language Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program.

Language Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program. Language Translation Compilation vs. interpretation Compilation diagram Step 1: compile program compiler Compiled program Step 2: run input Compiled program output Language Translation compilation is translation

More information

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler Front-End

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler Front-End Outline Semantic Analysis The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Static analyses that detect type errors

More information

COP 3402 Systems Software. Lecture 4: Compilers. Interpreters

COP 3402 Systems Software. Lecture 4: Compilers. Interpreters COP 3402 Systems Software Lecture 4: Compilers 1 Outline 1. Compiler and interpreters 2. Compilers 3. 4. PL/0 lexical tokens 2 Compilers / Programming languages are notations for describing computations

More information

Early computers (1940s) cost millions of dollars and were programmed in machine language. less error-prone method needed

Early computers (1940s) cost millions of dollars and were programmed in machine language. less error-prone method needed Chapter 1 :: Programming Language Pragmatics Michael L. Scott Early computers (1940s) cost millions of dollars and were programmed in machine language machine s time more valuable than programmer s machine

More information

Fundamentals of Programming. By Budditha Hettige

Fundamentals of Programming. By Budditha Hettige Fundamentals of Programming By Budditha Hettige Overview Machines solve problems? How Machine Solve a Problem? What is Programming? What are Programming Languages Compilers Tools and Tips for Programming

More information

Why are there so many programming languages?

Why are there so many programming languages? Chapter 1 :: Introduction Programming Language Pragmatics, Fourth Edition Michael L. Scott Copyright 2016 Elsevier 1 Chapter01_ Introduction_4e - Tue November 21, 2017 Introduction Why are there so many

More information

Chapter Twelve. Systems Design and Development

Chapter Twelve. Systems Design and Development Chapter Twelve Systems Design and Development After reading this chapter, you should be able to: Describe the process of designing, programming, and debugging a computer program Explain why there are many

More information

BITG 1113: Introduction To Computers And Programming Language LECTURE 1 LECTURE 1 1

BITG 1113: Introduction To Computers And Programming Language LECTURE 1 LECTURE 1 1 BITG 1113: Introduction To Computers And Programming Language LECTURE 1 LECTURE 1 1 Learning Outcomes At the end of this lecture, you should be able to: tell the purpose of computer programs. describe

More information

Concepts of Programming Languages

Concepts of Programming Languages Concepts of Programming Languages Lecture 1 - Introduction Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages Spring 2014

More information

Programming Languages, Summary CSC419; Odelia Schwartz

Programming Languages, Summary CSC419; Odelia Schwartz Programming Languages, Summary CSC419; Odelia Schwartz Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design

More information

Compiler, Assembler, and Linker

Compiler, Assembler, and Linker Compiler, Assembler, and Linker Minsoo Ryu Department of Computer Science and Engineering Hanyang University msryu@hanyang.ac.kr What is a Compilation? Preprocessor Compiler Assembler Linker Loader Contents

More information

9/5/17. The Design and Implementation of Programming Languages. Compilation. Interpretation. Compilation vs. Interpretation. Hybrid Implementation

9/5/17. The Design and Implementation of Programming Languages. Compilation. Interpretation. Compilation vs. Interpretation. Hybrid Implementation Language Implementation Methods The Design and Implementation of Programming Languages Compilation Interpretation Hybrid In Text: Chapter 1 2 Compilation Interpretation Translate high-level programs to

More information

NOTE: Answer ANY FOUR of the following 6 sections:

NOTE: Answer ANY FOUR of the following 6 sections: A-PDF MERGER DEMO Philadelphia University Lecturer: Dr. Nadia Y. Yousif Coordinator: Dr. Nadia Y. Yousif Internal Examiner: Dr. Raad Fadhel Examination Paper... Programming Languages Paradigms (750321)

More information

Compilation I. Hwansoo Han

Compilation I. Hwansoo Han Compilation I Hwansoo Han Language Groups Imperative von Neumann (Fortran, Pascal, Basic, C) Object-oriented (Smalltalk, Eiffel, C++) Scripting languages (Perl, Python, JavaScript, PHP) Declarative Functional

More information

Life Cycle of Source Program - Compiler Design

Life Cycle of Source Program - Compiler Design Life Cycle of Source Program - Compiler Design Vishal Trivedi * Gandhinagar Institute of Technology, Gandhinagar, Gujarat, India E-mail: raja.vishaltrivedi@gmail.com Abstract: This Research paper gives

More information

Chapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science

Chapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science Chapter 9 Introduction to High-Level Language Programming INVITATION TO Computer Science 1 Objectives After studying this chapter, students will be able to: Explain the advantages of high-level programming

More information

Chapter 1. Preliminaries

Chapter 1. Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

Chapter 1 Preliminaries

Chapter 1 Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

The role of semantic analysis in a compiler

The role of semantic analysis in a compiler Semantic Analysis Outline The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Static analyses that detect type errors

More information

Software II: Principles of Programming Languages

Software II: Principles of Programming Languages Software II: Principles of Programming Languages Lecture 4 Language Translation: Lexical and Syntactic Analysis Translation A translator transforms source code (a program written in one language) into

More information

What is a programming language?

What is a programming language? Overview Introduction Motivation Why study programming languages? Some key concepts What is a programming language? What is a programming language?...there is no agreement on what a programming language

More information

Introduction to Scientific Computing Languages

Introduction to Scientific Computing Languages 1 / 1 Introduction to Scientific Computing Languages Prof. Paolo Bientinesi pauldj@aices.rwth-aachen.de Languages for Scientific Computing 2 / 1 What is a programming language? Languages for Scientific

More information

! Broaden your language horizons! Different programming languages! Different language features and tradeoffs. ! Study how languages are implemented

! Broaden your language horizons! Different programming languages! Different language features and tradeoffs. ! Study how languages are implemented Course Goal CMSC 330: Organization of Programming Languages Introduction Learn how programming languages work Broaden your language horizons! Different programming languages! Different language features

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 2 Thomas Wies New York University Review Last week Programming Languages Overview Syntax and Semantics Grammars and Regular Expressions High-level

More information

CS 314 Principles of Programming Languages

CS 314 Principles of Programming Languages CS 314 Principles of Programming Languages Lecture 15: Review and Functional Programming Zheng (Eddy) Zhang Rutgers University March 19, 2018 Class Information Midterm exam forum open in Sakai. HW4 and

More information

Introduction to Scientific Computing Languages

Introduction to Scientific Computing Languages 1 / 17 Introduction to Scientific Computing Languages Prof. Paolo Bientinesi pauldj@aices.rwth-aachen.de Languages for Scientific Computing 2 / 17 What is a programming language? Languages for Scientific

More information

Comp 333: Concepts of Programming Languages Fall 2016

Comp 333: Concepts of Programming Languages Fall 2016 Comp 333: Concepts of Programming Languages Fall 2016 Instructor: Professor Schwartz History Syntax and Semantics Compilers Language Constructs Names, Binding, Scoping, Data Types Expressions, Control

More information

Outline. Introduction to Programming (in C++) Introduction. First program in C++ Programming examples

Outline. Introduction to Programming (in C++) Introduction. First program in C++ Programming examples Outline Introduction to Programming (in C++) Introduction Programming examples Algorithms, programming languages and computer programs Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer

More information

Design & Implementation Overview

Design & Implementation Overview P Fall 2017 Outline P 1 2 3 4 5 6 7 P P Ontological commitments P Imperative l Architecture: Memory cells variables Data movement (memory memory, CPU memory) assignment Sequential machine instruction execution

More information

Concepts in Programming Languages

Concepts in Programming Languages Concepts in Programming Languages Marcelo Fiore Computer Laboratory University of Cambridge 2012 2013 (Easter Term) 1 Practicalities Course web page: with lecture

More information

SE352b: Roadmap. SE352b Software Engineering Design Tools. W3: Programming Paradigms

SE352b: Roadmap. SE352b Software Engineering Design Tools. W3: Programming Paradigms SE352b Software Engineering Design Tools W3: Programming Paradigms Feb. 3, 2005 SE352b, ECE,UWO, Hamada Ghenniwa SE352b: Roadmap CASE Tools: Introduction System Programming Tools Programming Paradigms

More information

LECTURE 3. Compiler Phases

LECTURE 3. Compiler Phases LECTURE 3 Compiler Phases COMPILER PHASES Compilation of a program proceeds through a fixed series of phases. Each phase uses an (intermediate) form of the program produced by an earlier phase. Subsequent

More information

Software Development. Integrated Software Environment

Software Development. Integrated Software Environment Software Development Integrated Software Environment Source Code vs. Machine Code What is source code? Source code and object code refer to the "before" and "after" versions of a computer program that

More information

Introduction to Programming: Variables and Objects. HORT Lecture 7 Instructor: Kranthi Varala

Introduction to Programming: Variables and Objects. HORT Lecture 7 Instructor: Kranthi Varala Introduction to Programming: Variables and Objects HORT 59000 Lecture 7 Instructor: Kranthi Varala What is a program? A set of instructions to the computer that perform a specified task in a specified

More information

Programming Languages and Program Development Life Cycle Fall Introduction to Information and Communication Technologies CSD 102

Programming Languages and Program Development Life Cycle Fall Introduction to Information and Communication Technologies CSD 102 Programming Languages and Program Development Life Cycle Fall 2016 Introduction to Information and Communication Technologies CSD 102 Outline The most common approaches to program design and development

More information

COMPILER DESIGN LECTURE NOTES

COMPILER DESIGN LECTURE NOTES COMPILER DESIGN LECTURE NOTES UNIT -1 1.1 OVERVIEW OF LANGUAGE PROCESSING SYSTEM 1.2 Preprocessor A preprocessor produce input to compilers. They may perform the following functions. 1. Macro processing:

More information

CS101 Introduction to Programming Languages and Compilers

CS101 Introduction to Programming Languages and Compilers CS101 Introduction to Programming Languages and Compilers In this handout we ll examine different types of programming languages and take a brief look at compilers. We ll only hit the major highlights

More information

CSCI 3136 Principles of Programming Languages

CSCI 3136 Principles of Programming Languages CSCI 3136 Principles of Programming Languages Summer 2013 Faculty of Computer Science Dalhousie University 1 / 100 CSCI 3136 Principles of Programming Languages Summer 2013 Aminul Islam Faculty of Computer

More information

An Introduction to Software Engineering. David Greenstein Monta Vista High School

An Introduction to Software Engineering. David Greenstein Monta Vista High School An Introduction to Software Engineering David Greenstein Monta Vista High School Software Today Software Development Pre-1970 s - Emphasis on efficiency Compact, fast algorithms on machines with limited

More information

Introduction. Interpreters High-level language intermediate code which is interpreted. Translators. e.g.

Introduction. Interpreters High-level language intermediate code which is interpreted. Translators. e.g. Introduction Translators Interpreters High-level intermediate code which is interpreted e.g. Program in a representation translator Program in another representation BASIC, LISP, APL command s, e.g. UNIX-shell

More information

Programming Languages

Programming Languages Chapter 1 :: Introduction Programming Language Pragmatics Michael L. Scott Programming Languages What programming languages can you name? Which do you know? 1 Introduction Why are there so many programming

More information

LECTURE 2. Compilers and Interpreters

LECTURE 2. Compilers and Interpreters LECTURE 2 Compilers and Interpreters COMPILATION AND INTERPRETATION Programs written in high-level languages can be run in two ways. Compiled into an executable program written in machine language for

More information

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2014 Euiseong Seo

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2014 Euiseong Seo Principles in Programming: Orientation & Lecture 1 1 Course Objectives Introduce various subjects in computer science through puzzles and problems Most problems came from ICPC 2 Textbook Programming Challenges

More information

Computer Basics 1/6/16. Computer Organization. Computer systems consist of hardware and software.

Computer Basics 1/6/16. Computer Organization. Computer systems consist of hardware and software. Hardware and Software Computer Basics TOPICS Computer Organization Data Representation Program Execution Computer Languages Computer systems consist of hardware and software. Hardware includes the tangible

More information

Compiler Construction

Compiler Construction Compiler Construction Introduction and overview Görel Hedin Reviderad 2013-01-22 2013 Compiler Construction 2013 F01-1 Agenda Course registration, structure, etc. Course overview Compiler Construction

More information

Software Lesson 2 Outline

Software Lesson 2 Outline Software Lesson 2 Outline 1. Software Lesson 2 Outline 2. Languages 3. Ingredients of a Language 4. Kinds of Languages 5. Natural Languages #1 6. Natural Languages #2 7. Natural Languages #3 8. Natural

More information

Crafting a Compiler with C (II) Compiler V. S. Interpreter

Crafting a Compiler with C (II) Compiler V. S. Interpreter Crafting a Compiler with C (II) 資科系 林偉川 Compiler V S Interpreter Compilation - Translate high-level program to machine code Lexical Analyzer, Syntax Analyzer, Intermediate code generator(semantics Analyzer),

More information

Compilers. Prerequisites

Compilers. Prerequisites Compilers Prerequisites Data structures & algorithms Linked lists, dictionaries, trees, hash tables Formal languages & automata Regular expressions, finite automata, context-free grammars Machine organization

More information

CVEN 302. Computer Applications in Engineering and Construction. Dr. Tony Cahill Environmental and Water Resources Division

CVEN 302. Computer Applications in Engineering and Construction. Dr. Tony Cahill Environmental and Water Resources Division CVEN 302 Computer Applications in Engineering and Construction Dr. Tony Cahill Environmental and Water Resources Division Instructors Instructor: Tony Cahill Office: WERC 205J Office Hours: T/R 3:00 4:00PM.

More information

Compiling Regular Expressions COMP360

Compiling Regular Expressions COMP360 Compiling Regular Expressions COMP360 Logic is the beginning of wisdom, not the end. Leonard Nimoy Compiler s Purpose The compiler converts the program source code into a form that can be executed by the

More information

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation 1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation Administrivia Lecturer: Kostis Sagonas (kostis@it.uu.se) Course home page (of previous year):

More information

Introduction to Programming Languages. CSE 307 Principles of Programming Languages Stony Brook University

Introduction to Programming Languages. CSE 307 Principles of Programming Languages Stony Brook University Introduction to Programming Languages CSE 307 Principles of Programming Languages Stony Brook University http://www.cs.stonybrook.edu/~cse307 1 Introduction At the beginning: only machine language: a sequence

More information

PLAGIARISM. Administrivia. Course home page: Introduction to Programming Languages and Compilers

PLAGIARISM. Administrivia. Course home page: Introduction to Programming Languages and Compilers Administrivia Introduction to Programming Languages and Compilers CS164 11:00-12:00 MWF 306 Soda Notes by G. Necula, with additions by P. Hilfinger Course home page: http://www-inst.eecs.berkeley.edu/~cs164

More information

Introduction to Programming Languages and Compilers. CS164 11:00-12:00 MWF 306 Soda

Introduction to Programming Languages and Compilers. CS164 11:00-12:00 MWF 306 Soda Introduction to Programming Languages and Compilers CS164 11:00-12:00 MWF 306 Soda Notes by G. Necula, with additions by P. Hilfinger Prof. Hilfinger CS 164 Lecture 1 1 Administrivia Course home page:

More information

Chapter 5. Names, Bindings, and Scopes

Chapter 5. Names, Bindings, and Scopes Chapter 5 Names, Bindings, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Scope Scope and Lifetime Referencing Environments Named Constants 1-2 Introduction Imperative

More information

Lecture 1. Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering?

Lecture 1. Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering? Lecture 1 Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering? Welcome to ENGR 102 Syllabus review Your Time Expectations (in

More information

Informatica 3 Syntax and Semantics

Informatica 3 Syntax and Semantics Informatica 3 Syntax and Semantics Marcello Restelli 9/15/07 Laurea in Ingegneria Informatica Politecnico di Milano Introduction Introduction to the concepts of syntax and semantics Binding Variables Routines

More information

COSC121: Computer Systems: Runtime Stack

COSC121: Computer Systems: Runtime Stack COSC121: Computer Systems: Runtime Stack Jeremy Bolton, PhD Assistant Teaching Professor Constructed using materials: - Patt and Patel Introduction to Computing Systems (2nd) - Patterson and Hennessy Computer

More information

CSC488S/CSC2107S - Compilers and Interpreters. CSC 488S/CSC 2107S Lecture Notes

CSC488S/CSC2107S - Compilers and Interpreters. CSC 488S/CSC 2107S Lecture Notes CSC 488S/CSC 2107S Lecture Notes These lecture notes are provided for the personal use of students taking CSC488H1S or CSC2107S in the Winter 2012/2013 term at the University of Toronto Copying for purposes

More information

Computer Basics 1/24/13. Computer Organization. Computer systems consist of hardware and software.

Computer Basics 1/24/13. Computer Organization. Computer systems consist of hardware and software. Hardware and Software Computer Basics TOPICS Computer Organization Data Representation Program Execution Computer Languages Computer systems consist of hardware and software. Hardware includes the tangible

More information

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University ITC213: STRUCTURED PROGRAMMING Bhaskar Shrestha National College of Computer Studies Tribhuvan University Lecture 03: Program Development Life Cycle Readings: Not Covered in Textbook Program Development

More information

Compiler Structure. Lexical. Scanning/ Screening. Analysis. Syntax. Parsing. Analysis. Semantic. Context Analysis. Analysis.

Compiler Structure. Lexical. Scanning/ Screening. Analysis. Syntax. Parsing. Analysis. Semantic. Context Analysis. Analysis. Compiler Structure Source Program Text Phases of Compilation Compilation process is partitioned into a series of four distinct subproblems called phases, each with a separate well-defined translation task

More information

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Objective PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Explain what is meant by compiler. Explain how the compiler works. Describe various analysis of the source program. Describe the

More information

Compiler Design 1. Introduction to Programming Language Design and to Compilation

Compiler Design 1. Introduction to Programming Language Design and to Compilation Compiler Design 1 Introduction to Programming Language Design and to Compilation Administrivia Lecturer: Kostis Sagonas (Hus 1, 352) Course home page: http://user.it.uu.se/~kostis/teaching/kt1-11 If you

More information

Lecture 1: Course Introduction

Lecture 1: Course Introduction Lecture 1: Course Introduction CS164: Programming Languages and Compilers P. N. Hilfinger, 787 Soda Spring 2015 Acknowledgement. Portions taken from CS164 notes by G. Necula. Last modified: Wed Jan 21

More information

Outline. Programming Languages 1/16/18 PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY. Current

Outline. Programming Languages 1/16/18 PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY. Current PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY Dr. John Georgas, Northern Arizona University Copyright John Georgas All Rights Reserved Outline Current Programming languages Compiled and interpreted implementations

More information

SOFTWARE ARCHITECTURE 5. COMPILER

SOFTWARE ARCHITECTURE 5. COMPILER 1 SOFTWARE ARCHITECTURE 5. COMPILER Tatsuya Hagino hagino@sfc.keio.ac.jp slides URL https://vu5.sfc.keio.ac.jp/sa/ 2 Programming Language Programming Language Artificial language to express instructions

More information

Introduction to Java Programming

Introduction to Java Programming Introduction to Java Programming Lecture 1 CGS 3416 Spring 2017 1/9/2017 Main Components of a computer CPU - Central Processing Unit: The brain of the computer ISA - Instruction Set Architecture: the specific

More information

Programming Languages FILS Andrei Vasilateanu

Programming Languages FILS Andrei Vasilateanu Programming Languages FILS 2014-2015 Andrei Vasilateanu Course Master: Administration Andrei Vasilateanu, andraevs@gmail.com Teaching Assistants: Radu Serban Grading: Final exam 40% Laboratory 60% 2 Tests

More information

1 The Catholic University of Eastern Africa P.o Box , Nairobi Kenya Edward Kioko 2013

1 The Catholic University of Eastern Africa P.o Box , Nairobi Kenya Edward Kioko 2013 Purpose of the module (A constituent College of Kenyatta University) P.O Box 136-90100, Machakos Kenya Telephone: 044-21604 Email: info@machakosuniversity.ac.ke Website: http://www.machakosuniversity.ac.ke

More information

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler so far

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler so far Outline Semantic Analysis The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Statically vs. Dynamically typed languages

More information

Programming 1. Lecture 1 COP 3014 Fall August 28, 2017

Programming 1. Lecture 1 COP 3014 Fall August 28, 2017 Programming 1 Lecture 1 COP 3014 Fall 2017 August 28, 2017 Main Components of a computer CPU - Central Processing Unit: The brain of the computer. ISA - Instruction Set Architecture: the specific set of

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 4 Thomas Wies New York University Review Last week Control Structures Selection Loops Adding Invariants Outline Subprograms Calling Sequences Parameter

More information

Formal Languages and Compilers Lecture I: Introduction to Compilers

Formal Languages and Compilers Lecture I: Introduction to Compilers Formal Languages and Compilers Lecture I: Introduction to Compilers Free University of Bozen-Bolzano Faculty of Computer Science POS Building, Room: 2.03 artale@inf.unibz.it http://www.inf.unibz.it/ artale/

More information

names names identifiers variables subroutines constants

names names identifiers variables subroutines constants names (source: Louden, "Programming Languages, Principles and Practices", 2nd Edition, Ch. 5, pp. 125-134)!p. 126: "A fundamental abstraction mechanism in a programming language is the use of names, or

More information

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006 C Compilation Model Comp-206 : Introduction to Software Systems Lecture 9 Alexandre Denault Computer Science McGill University Fall 2006 Midterm Date: Thursday, October 19th, 2006 Time: from 16h00 to 17h30

More information

SLIDE 2. At the beginning of the lecture, we answer question: On what platform the system will work when discussing this subject?

SLIDE 2. At the beginning of the lecture, we answer question: On what platform the system will work when discussing this subject? SLIDE 2 At the beginning of the lecture, we answer question: On what platform the system will work when discussing this subject? We have two systems: Widnows and Linux. The easiest solution is to use the

More information

8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES

8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES CS-3304 Introduction In Text: Chapter 1 & 2 COURSE DESCRIPTION 2 What will you learn? Survey of programming paradigms, including representative languages Language definition and description methods Overview

More information

Implementing Subprograms

Implementing Subprograms 1 Implementing Subprograms CS 315 Programming Languages Pinar Duygulu Bilkent University CS315 Programming Languages Pinar Duygulu The General Semantics of Calls and Returns 2 The subprogram call and return

More information

ECS15, Lecture 10. Goals of this course 2/8/13. Mini-Review & Topic 3.2 Software. Today s agenda

ECS15, Lecture 10. Goals of this course 2/8/13. Mini-Review & Topic 3.2 Software. Today s agenda Today s agenda ECS15, Lecture 10 Mini-Review & Topic 3.2 Software Review the lectures. Sample midterm to be posted late today/tonight. Extra credit (1pt) turn in Monday 9:30am Finish up details on Topic

More information

Lecture 01 & 02 Computer Programming

Lecture 01 & 02 Computer Programming Lecture 01 & 02 Computer Programming 15 Computer Systems Engineering Second Semester By: Mr. Ali Asghar Manjotho, Lecturer, CSE-MUET Contents Computer programming (LL 02) Why programming? (LL 02) Instructions

More information