SlideShare a Scribd company logo
CMP 131
Introduction to Computer
Programming
Violetta Cavalli-Sforza
Week 1, Lab
Outline of Topics
• Hardware/Software interface
– Layers of the Machine
– Kinds of Software
• Computer Languages
• Syntax, Semantics, Grammars
• What happens to your program?
– Compilation, Linking, Execution
– Program errors
• Compilation vs. Interpretation etc.
Software Categories
• System SW
–Programs written for computer systems
• Compilers, operating systems, …
• Application SW
–Programs written for computer users
• Word-processors, spreadsheets, & other
application packages
A Layered View of the Computer
Machine with all its hardware
System Software
Compilers, Interpreters,Preprocessors,
etc.
Operating System, Device Drivers
Application Programs
Word-Processors, Spreadsheets,
Database Software, IDEs,
etc…
Operating System (OS)
 Provides several essential services:
– Loading & running application programs
– Allocating memory & processor time
– Providing input & output facilities
– Managing files of information
Programs
• Programs are written in programming languages
– PL = programming language
– Pieces of the same program can be written in different
PLs
• Languages closer to the machine can be more efficient
• As long as they agree on how to communicate
• A PL is
– A special purpose and limited language
– A set of rules and symbols used to construct a
computer program
– A language used to interact with the computer
Computer Languages
– Machine Language
• Uses binary code
• Machine-dependent
• Not portable
• Assembly Language
– Uses mnemonics
– Machine-dependent
– Not usually portable
• High-Level Language (HLL)
– Uses English-like language
– Machine independent
– Portable (but must be compiled for different platforms)
– Examples: Pascal, C, C++, Java, Fortran, . . .
Machine Language
• The representation of a computer program which is
actually read and understood by the computer.
– A program in machine code consists of a sequence of machine
instructions.
• Instructions:
– Machine instructions are in binary code
– Instructions specify operations and memory cells involved in the
operation
Example: Operation Address
0010 0000 0000 0100
0100 0000 0000 0101
0011 0000 0000 0110
Assembly Language
• A symbolic representation of the machine language of a
specific processor.
• Is converted to machine code by an assembler.
• Usually, each line of assembly code produces one
machine instruction (One-to-one correspondence).
• Programming in assembly language is slow and error-
prone but is more efficient in terms of hardware
performance.
• Mnemonic representation of the instructions and data
• Example:
Load Price
Add Tax
Store Cost
High-level language
• A programming language which use statements
consisting of English-like keywords such as "FOR",
"PRINT" or “IF“, ... etc.
• Each statement corresponds to several machine
language instructions (one-to-many correspondence).
• Much easier to program than in assembly language.
• Data are referenced using descriptive names
• Operations can be described using familiar symbols
• Example:
Cost := Price + Tax
Syntax & Semantics
• Syntax:
– The structure of strings in some language. A
language's syntax is described by a grammar.
– Examples:
• Binary number
<binary_number> = <bit> | <bit> <binary_number>
<bit> = 0 | 1
• Identifier
<identifier> = <letter> {<letter> | <digit> }
<letter> = a | b | . . . | z
<digit = 0 | 1 | . . . | 9
• Semantics:
– The meaning of the language
Syntax & Grammars
• Syntax descriptions for a PL are
themselves written in a formal language.
– E.g. Backus-Naur Form (BNF)
• The formal language is not a PL but it can
be implemented by a compiler to enforce
grammar restrictions.
• Some PLs look more like grammar
descriptions than like instructions.
Compilers & Programs
• Compiler
– A program that converts another program from
some source language (or high-level
programming language / HLL) to machine
language (object code).
– Some compilers output assembly language
which is then converted to machine language by
a separate assembler.
– Is distinguished from an assembler by the fact
that each input statement, in general,
correspond to more than one machine
instruction.
Compilation into Assembly L
Compiler
Assembler
Source
Program
Assembly
Language
Assembly
Language
Machine
Language
Compilers & Programs
• Source program
– The form in which a computer program,
written in some formal programming
language, is written by the programmer.
– Can be compiled automatically into object
code or machine code or executed by an
interpreter.
– Pascal source programs have extension
‘.pas’
Compilers & Programs
• Object program
– Output from the compiler
– Equivalent machine language translation of the
source program
– Files usually have extension ‘.obj’
• Executable program
– Output from linker/loader
– Machine language program linked with necessary
libraries & other files
– Files usually have extension ‘.exe’
What is a Linker?
• A program that pulls other programs together so
that they can run.
• Most programs are very large and consist of
several modules.
• Even small programs use existing code provided
by the programming environment called libraries.
• The linker pulls everything together, makes sure
that references to other parts of the program
(code) are resolved.
Running Programs
Memory
Input Data
Program Output
Machine language
program
(executable file)
Data entered
during execution
Computed results
C P U
• Steps that the computer goes through to run a
program:
Program Execution
• Steps taken by the CPU to run a program
(instructions are in machine language):
1. Fetch an instruction
2. Decode (interpret) the instruction
3. Retrieve data, if needed
4. Execute (perform) actual processing
5. Store the results, if needed
Program Errors
• Syntax Errors:
– Errors in grammar of the language
• Runtime error:
– When there are no syntax errors, but the program
can’t complete execution
• Divide by zero
• Invalid input data
• Logical errors:
– The program completes execution, but delivers
incorrect results
– Incorrect usage of parentheses
Compilation
Compiler
Target Program
Source
Program
Target
Program
Input Output
• Compiler translates source into target (a machine
language program)
• Compiler goes away at execution time
• Compiler is itself a machine language program,
presumably created by compiling some other high-level
program
• Machine language, when written in a format understood
by the OS is object code
Interpretation
Interpreter
Source
Program
Input
Output
• The interpreter stays around during execution
• It reads and executes statements one at a time
Compilation vs. Interpretation
• Compilation:
– Syntax errors caught before running the program
– Better performance
– Decisions made once, at compile time
• Interpretation:
– Better diagnostics (error messages)
– More flexibility
– Supports late binding (delaying decisions about
program implementation until runtime)
• Can better cope with PLs where type and size of
variables depend on input
– Supports creation/modification of program code on
the fly (e.g. Lisp, Prolog)
Mixture of C & I
Translator
Source
Program
Intermediate
Program
VM
Intermediate
Program
Input
Output
• Many programming languages implement this
• Interpreter implements a Virtual Machine (VM).
JAVA
Compiler
Interpreter
Java
bytecode
ML
For flexibility: Just In Time (JIT) compiler translates
bytecode into ML just before execution
For portability:
Homework/Contact
• While I’m learning to use the folder stuff, by
tomorrow some time you will be able to find slides
from this week attached to http://
www.cs.cmu.edu/~violetta/
Look for the link to IIHEM at the bottom of the
page.
• Read Chapter 1, Sections 1 & 2 of your textbook
carefully.
• Think of 3 tasks you have encountered in your
studies that you would like to write a program for.
• Send them mail to me, and questions you might
have at: violetta_rabat@yahoo.fr
Ad

More Related Content

Similar to Introduction Computer programming and operating system (20)

CD - CH1 - Introduction to compiler design.pptx
CD - CH1 - Introduction to compiler design.pptxCD - CH1 - Introduction to compiler design.pptx
CD - CH1 - Introduction to compiler design.pptx
ZiyadMohammed17
 
Cd ch1 - introduction
Cd   ch1 - introductionCd   ch1 - introduction
Cd ch1 - introduction
mengistu23
 
Compilers.pptx
Compilers.pptxCompilers.pptx
Compilers.pptx
MohammedMohammed578197
 
Computer Science guide to C Unit-I Translator.pptx
Computer Science guide to C Unit-I Translator.pptxComputer Science guide to C Unit-I Translator.pptx
Computer Science guide to C Unit-I Translator.pptx
NomthandazoNgwenya1
 
Embedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals masterEmbedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals master
Hossam Hassan
 
Chapter 4 computer language
Chapter 4 computer languageChapter 4 computer language
Chapter 4 computer language
Azimjon Khamdamov
 
Week - 04, 05 Software Chapter 2 info sys.ppt
Week - 04, 05 Software Chapter 2 info sys.pptWeek - 04, 05 Software Chapter 2 info sys.ppt
Week - 04, 05 Software Chapter 2 info sys.ppt
TALHA RIAZ PERSOTA
 
sege.pdf
sege.pdfsege.pdf
sege.pdf
SegezzBrian
 
Introduction to computer programming
Introduction to computer programming Introduction to computer programming
Introduction to computer programming
VanessaBuensalida
 
programming.pptx
programming.pptxprogramming.pptx
programming.pptx
DarianElmyra
 
Week 08_Basics of Compiler Construction.pdf
Week 08_Basics of Compiler Construction.pdfWeek 08_Basics of Compiler Construction.pdf
Week 08_Basics of Compiler Construction.pdf
AnonymousQ3EMYoWNS
 
Compiler Design Basics
Compiler Design BasicsCompiler Design Basics
Compiler Design Basics
Akhil Kaushik
 
a1.pptx.pdf
a1.pptx.pdfa1.pptx.pdf
a1.pptx.pdf
Sheham Hassan
 
Module-3 Embedded syatem firmware design.ppt
Module-3 Embedded syatem firmware design.pptModule-3 Embedded syatem firmware design.ppt
Module-3 Embedded syatem firmware design.ppt
BEVARAVASUDEVAAP1813
 
Module-3 embedded system firmware code.ppt
Module-3 embedded system firmware code.pptModule-3 embedded system firmware code.ppt
Module-3 embedded system firmware code.ppt
BEVARAVASUDEVAAP1813
 
Embedded firmware
Embedded firmwareEmbedded firmware
Embedded firmware
Joel P
 
Module4.pdf ,...................................
Module4.pdf ,...................................Module4.pdf ,...................................
Module4.pdf ,...................................
chetanreddy2212
 
Python Programming-Skill Course - unit-i.pptx
Python Programming-Skill Course - unit-i.pptxPython Programming-Skill Course - unit-i.pptx
Python Programming-Skill Course - unit-i.pptx
KavithaDonepudi
 
Python-unit -I.pptx
Python-unit -I.pptxPython-unit -I.pptx
Python-unit -I.pptx
crAmth
 
Compiler Design Introduction
Compiler Design Introduction Compiler Design Introduction
Compiler Design Introduction
Thapar Institute
 
CD - CH1 - Introduction to compiler design.pptx
CD - CH1 - Introduction to compiler design.pptxCD - CH1 - Introduction to compiler design.pptx
CD - CH1 - Introduction to compiler design.pptx
ZiyadMohammed17
 
Cd ch1 - introduction
Cd   ch1 - introductionCd   ch1 - introduction
Cd ch1 - introduction
mengistu23
 
Computer Science guide to C Unit-I Translator.pptx
Computer Science guide to C Unit-I Translator.pptxComputer Science guide to C Unit-I Translator.pptx
Computer Science guide to C Unit-I Translator.pptx
NomthandazoNgwenya1
 
Embedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals masterEmbedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals master
Hossam Hassan
 
Week - 04, 05 Software Chapter 2 info sys.ppt
Week - 04, 05 Software Chapter 2 info sys.pptWeek - 04, 05 Software Chapter 2 info sys.ppt
Week - 04, 05 Software Chapter 2 info sys.ppt
TALHA RIAZ PERSOTA
 
Introduction to computer programming
Introduction to computer programming Introduction to computer programming
Introduction to computer programming
VanessaBuensalida
 
Week 08_Basics of Compiler Construction.pdf
Week 08_Basics of Compiler Construction.pdfWeek 08_Basics of Compiler Construction.pdf
Week 08_Basics of Compiler Construction.pdf
AnonymousQ3EMYoWNS
 
Compiler Design Basics
Compiler Design BasicsCompiler Design Basics
Compiler Design Basics
Akhil Kaushik
 
Module-3 Embedded syatem firmware design.ppt
Module-3 Embedded syatem firmware design.pptModule-3 Embedded syatem firmware design.ppt
Module-3 Embedded syatem firmware design.ppt
BEVARAVASUDEVAAP1813
 
Module-3 embedded system firmware code.ppt
Module-3 embedded system firmware code.pptModule-3 embedded system firmware code.ppt
Module-3 embedded system firmware code.ppt
BEVARAVASUDEVAAP1813
 
Embedded firmware
Embedded firmwareEmbedded firmware
Embedded firmware
Joel P
 
Module4.pdf ,...................................
Module4.pdf ,...................................Module4.pdf ,...................................
Module4.pdf ,...................................
chetanreddy2212
 
Python Programming-Skill Course - unit-i.pptx
Python Programming-Skill Course - unit-i.pptxPython Programming-Skill Course - unit-i.pptx
Python Programming-Skill Course - unit-i.pptx
KavithaDonepudi
 
Python-unit -I.pptx
Python-unit -I.pptxPython-unit -I.pptx
Python-unit -I.pptx
crAmth
 
Compiler Design Introduction
Compiler Design Introduction Compiler Design Introduction
Compiler Design Introduction
Thapar Institute
 

Recently uploaded (20)

Little Known Ways To 3 Best sites to Buy Linkedin Accounts.pdf
Little Known Ways To 3 Best sites to Buy Linkedin Accounts.pdfLittle Known Ways To 3 Best sites to Buy Linkedin Accounts.pdf
Little Known Ways To 3 Best sites to Buy Linkedin Accounts.pdf
gori42199
 
Autodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User InterfaceAutodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User Interface
Atif Razi
 
introduction technology technology tec.pptx
introduction technology technology tec.pptxintroduction technology technology tec.pptx
introduction technology technology tec.pptx
Iftikhar70
 
Construction Materials (Paints) in Civil Engineering
Construction Materials (Paints) in Civil EngineeringConstruction Materials (Paints) in Civil Engineering
Construction Materials (Paints) in Civil Engineering
Lavish Kashyap
 
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
PawachMetharattanara
 
Agents chapter of Artificial intelligence
Agents chapter of Artificial intelligenceAgents chapter of Artificial intelligence
Agents chapter of Artificial intelligence
DebdeepMukherjee9
 
Evonik Overview Visiomer Specialty Methacrylates.pdf
Evonik Overview Visiomer Specialty Methacrylates.pdfEvonik Overview Visiomer Specialty Methacrylates.pdf
Evonik Overview Visiomer Specialty Methacrylates.pdf
szhang13
 
Mode-Wise Corridor Level Travel-Time Estimation Using Machine Learning Models
Mode-Wise Corridor Level Travel-Time Estimation Using Machine Learning ModelsMode-Wise Corridor Level Travel-Time Estimation Using Machine Learning Models
Mode-Wise Corridor Level Travel-Time Estimation Using Machine Learning Models
Journal of Soft Computing in Civil Engineering
 
ATAL 6 Days Online FDP Scheme Document 2025-26.pdf
ATAL 6 Days Online FDP Scheme Document 2025-26.pdfATAL 6 Days Online FDP Scheme Document 2025-26.pdf
ATAL 6 Days Online FDP Scheme Document 2025-26.pdf
ssuserda39791
 
Using the Artificial Neural Network to Predict the Axial Strength and Strain ...
Using the Artificial Neural Network to Predict the Axial Strength and Strain ...Using the Artificial Neural Network to Predict the Axial Strength and Strain ...
Using the Artificial Neural Network to Predict the Axial Strength and Strain ...
Journal of Soft Computing in Civil Engineering
 
JRR Tolkien’s Lord of the Rings: Was It Influenced by Nordic Mythology, Homer...
JRR Tolkien’s Lord of the Rings: Was It Influenced by Nordic Mythology, Homer...JRR Tolkien’s Lord of the Rings: Was It Influenced by Nordic Mythology, Homer...
JRR Tolkien’s Lord of the Rings: Was It Influenced by Nordic Mythology, Homer...
Reflections on Morality, Philosophy, and History
 
How to Build a Desktop Weather Station Using ESP32 and E-ink Display
How to Build a Desktop Weather Station Using ESP32 and E-ink DisplayHow to Build a Desktop Weather Station Using ESP32 and E-ink Display
How to Build a Desktop Weather Station Using ESP32 and E-ink Display
CircuitDigest
 
Prediction of Flexural Strength of Concrete Produced by Using Pozzolanic Mate...
Prediction of Flexural Strength of Concrete Produced by Using Pozzolanic Mate...Prediction of Flexural Strength of Concrete Produced by Using Pozzolanic Mate...
Prediction of Flexural Strength of Concrete Produced by Using Pozzolanic Mate...
Journal of Soft Computing in Civil Engineering
 
Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...
Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...
Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...
Journal of Soft Computing in Civil Engineering
 
Slide share PPT of SOx control technologies.pptx
Slide share PPT of SOx control technologies.pptxSlide share PPT of SOx control technologies.pptx
Slide share PPT of SOx control technologies.pptx
vvsasane
 
Slide share PPT of NOx control technologies.pptx
Slide share PPT of  NOx control technologies.pptxSlide share PPT of  NOx control technologies.pptx
Slide share PPT of NOx control technologies.pptx
vvsasane
 
22PCOAM16 ML Unit 3 Full notes PDF & QB.pdf
22PCOAM16 ML Unit 3 Full notes PDF & QB.pdf22PCOAM16 ML Unit 3 Full notes PDF & QB.pdf
22PCOAM16 ML Unit 3 Full notes PDF & QB.pdf
Guru Nanak Technical Institutions
 
DED KOMINFO detail engginering design gedung
DED KOMINFO detail engginering design gedungDED KOMINFO detail engginering design gedung
DED KOMINFO detail engginering design gedung
nabilarizqifadhilah1
 
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdf
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdfSmart City is the Future EN - 2024 Thailand Modify V1.0.pdf
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdf
PawachMetharattanara
 
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
ijflsjournal087
 
Little Known Ways To 3 Best sites to Buy Linkedin Accounts.pdf
Little Known Ways To 3 Best sites to Buy Linkedin Accounts.pdfLittle Known Ways To 3 Best sites to Buy Linkedin Accounts.pdf
Little Known Ways To 3 Best sites to Buy Linkedin Accounts.pdf
gori42199
 
Autodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User InterfaceAutodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User Interface
Atif Razi
 
introduction technology technology tec.pptx
introduction technology technology tec.pptxintroduction technology technology tec.pptx
introduction technology technology tec.pptx
Iftikhar70
 
Construction Materials (Paints) in Civil Engineering
Construction Materials (Paints) in Civil EngineeringConstruction Materials (Paints) in Civil Engineering
Construction Materials (Paints) in Civil Engineering
Lavish Kashyap
 
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
01.คุณลักษณะเฉพาะของอุปกรณ์_pagenumber.pdf
PawachMetharattanara
 
Agents chapter of Artificial intelligence
Agents chapter of Artificial intelligenceAgents chapter of Artificial intelligence
Agents chapter of Artificial intelligence
DebdeepMukherjee9
 
Evonik Overview Visiomer Specialty Methacrylates.pdf
Evonik Overview Visiomer Specialty Methacrylates.pdfEvonik Overview Visiomer Specialty Methacrylates.pdf
Evonik Overview Visiomer Specialty Methacrylates.pdf
szhang13
 
ATAL 6 Days Online FDP Scheme Document 2025-26.pdf
ATAL 6 Days Online FDP Scheme Document 2025-26.pdfATAL 6 Days Online FDP Scheme Document 2025-26.pdf
ATAL 6 Days Online FDP Scheme Document 2025-26.pdf
ssuserda39791
 
How to Build a Desktop Weather Station Using ESP32 and E-ink Display
How to Build a Desktop Weather Station Using ESP32 and E-ink DisplayHow to Build a Desktop Weather Station Using ESP32 and E-ink Display
How to Build a Desktop Weather Station Using ESP32 and E-ink Display
CircuitDigest
 
Slide share PPT of SOx control technologies.pptx
Slide share PPT of SOx control technologies.pptxSlide share PPT of SOx control technologies.pptx
Slide share PPT of SOx control technologies.pptx
vvsasane
 
Slide share PPT of NOx control technologies.pptx
Slide share PPT of  NOx control technologies.pptxSlide share PPT of  NOx control technologies.pptx
Slide share PPT of NOx control technologies.pptx
vvsasane
 
DED KOMINFO detail engginering design gedung
DED KOMINFO detail engginering design gedungDED KOMINFO detail engginering design gedung
DED KOMINFO detail engginering design gedung
nabilarizqifadhilah1
 
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdf
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdfSmart City is the Future EN - 2024 Thailand Modify V1.0.pdf
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdf
PawachMetharattanara
 
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
6th International Conference on Big Data, Machine Learning and IoT (BMLI 2025)
ijflsjournal087
 
Ad

Introduction Computer programming and operating system

  • 1. CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 1, Lab
  • 2. Outline of Topics • Hardware/Software interface – Layers of the Machine – Kinds of Software • Computer Languages • Syntax, Semantics, Grammars • What happens to your program? – Compilation, Linking, Execution – Program errors • Compilation vs. Interpretation etc.
  • 3. Software Categories • System SW –Programs written for computer systems • Compilers, operating systems, … • Application SW –Programs written for computer users • Word-processors, spreadsheets, & other application packages
  • 4. A Layered View of the Computer Machine with all its hardware System Software Compilers, Interpreters,Preprocessors, etc. Operating System, Device Drivers Application Programs Word-Processors, Spreadsheets, Database Software, IDEs, etc…
  • 5. Operating System (OS)  Provides several essential services: – Loading & running application programs – Allocating memory & processor time – Providing input & output facilities – Managing files of information
  • 6. Programs • Programs are written in programming languages – PL = programming language – Pieces of the same program can be written in different PLs • Languages closer to the machine can be more efficient • As long as they agree on how to communicate • A PL is – A special purpose and limited language – A set of rules and symbols used to construct a computer program – A language used to interact with the computer
  • 7. Computer Languages – Machine Language • Uses binary code • Machine-dependent • Not portable • Assembly Language – Uses mnemonics – Machine-dependent – Not usually portable • High-Level Language (HLL) – Uses English-like language – Machine independent – Portable (but must be compiled for different platforms) – Examples: Pascal, C, C++, Java, Fortran, . . .
  • 8. Machine Language • The representation of a computer program which is actually read and understood by the computer. – A program in machine code consists of a sequence of machine instructions. • Instructions: – Machine instructions are in binary code – Instructions specify operations and memory cells involved in the operation Example: Operation Address 0010 0000 0000 0100 0100 0000 0000 0101 0011 0000 0000 0110
  • 9. Assembly Language • A symbolic representation of the machine language of a specific processor. • Is converted to machine code by an assembler. • Usually, each line of assembly code produces one machine instruction (One-to-one correspondence). • Programming in assembly language is slow and error- prone but is more efficient in terms of hardware performance. • Mnemonic representation of the instructions and data • Example: Load Price Add Tax Store Cost
  • 10. High-level language • A programming language which use statements consisting of English-like keywords such as "FOR", "PRINT" or “IF“, ... etc. • Each statement corresponds to several machine language instructions (one-to-many correspondence). • Much easier to program than in assembly language. • Data are referenced using descriptive names • Operations can be described using familiar symbols • Example: Cost := Price + Tax
  • 11. Syntax & Semantics • Syntax: – The structure of strings in some language. A language's syntax is described by a grammar. – Examples: • Binary number <binary_number> = <bit> | <bit> <binary_number> <bit> = 0 | 1 • Identifier <identifier> = <letter> {<letter> | <digit> } <letter> = a | b | . . . | z <digit = 0 | 1 | . . . | 9 • Semantics: – The meaning of the language
  • 12. Syntax & Grammars • Syntax descriptions for a PL are themselves written in a formal language. – E.g. Backus-Naur Form (BNF) • The formal language is not a PL but it can be implemented by a compiler to enforce grammar restrictions. • Some PLs look more like grammar descriptions than like instructions.
  • 13. Compilers & Programs • Compiler – A program that converts another program from some source language (or high-level programming language / HLL) to machine language (object code). – Some compilers output assembly language which is then converted to machine language by a separate assembler. – Is distinguished from an assembler by the fact that each input statement, in general, correspond to more than one machine instruction.
  • 14. Compilation into Assembly L Compiler Assembler Source Program Assembly Language Assembly Language Machine Language
  • 15. Compilers & Programs • Source program – The form in which a computer program, written in some formal programming language, is written by the programmer. – Can be compiled automatically into object code or machine code or executed by an interpreter. – Pascal source programs have extension ‘.pas’
  • 16. Compilers & Programs • Object program – Output from the compiler – Equivalent machine language translation of the source program – Files usually have extension ‘.obj’ • Executable program – Output from linker/loader – Machine language program linked with necessary libraries & other files – Files usually have extension ‘.exe’
  • 17. What is a Linker? • A program that pulls other programs together so that they can run. • Most programs are very large and consist of several modules. • Even small programs use existing code provided by the programming environment called libraries. • The linker pulls everything together, makes sure that references to other parts of the program (code) are resolved.
  • 18. Running Programs Memory Input Data Program Output Machine language program (executable file) Data entered during execution Computed results C P U • Steps that the computer goes through to run a program:
  • 19. Program Execution • Steps taken by the CPU to run a program (instructions are in machine language): 1. Fetch an instruction 2. Decode (interpret) the instruction 3. Retrieve data, if needed 4. Execute (perform) actual processing 5. Store the results, if needed
  • 20. Program Errors • Syntax Errors: – Errors in grammar of the language • Runtime error: – When there are no syntax errors, but the program can’t complete execution • Divide by zero • Invalid input data • Logical errors: – The program completes execution, but delivers incorrect results – Incorrect usage of parentheses
  • 21. Compilation Compiler Target Program Source Program Target Program Input Output • Compiler translates source into target (a machine language program) • Compiler goes away at execution time • Compiler is itself a machine language program, presumably created by compiling some other high-level program • Machine language, when written in a format understood by the OS is object code
  • 22. Interpretation Interpreter Source Program Input Output • The interpreter stays around during execution • It reads and executes statements one at a time
  • 23. Compilation vs. Interpretation • Compilation: – Syntax errors caught before running the program – Better performance – Decisions made once, at compile time • Interpretation: – Better diagnostics (error messages) – More flexibility – Supports late binding (delaying decisions about program implementation until runtime) • Can better cope with PLs where type and size of variables depend on input – Supports creation/modification of program code on the fly (e.g. Lisp, Prolog)
  • 24. Mixture of C & I Translator Source Program Intermediate Program VM Intermediate Program Input Output • Many programming languages implement this • Interpreter implements a Virtual Machine (VM).
  • 25. JAVA Compiler Interpreter Java bytecode ML For flexibility: Just In Time (JIT) compiler translates bytecode into ML just before execution For portability:
  • 26. Homework/Contact • While I’m learning to use the folder stuff, by tomorrow some time you will be able to find slides from this week attached to http:// www.cs.cmu.edu/~violetta/ Look for the link to IIHEM at the bottom of the page. • Read Chapter 1, Sections 1 & 2 of your textbook carefully. • Think of 3 tasks you have encountered in your studies that you would like to write a program for. • Send them mail to me, and questions you might have at: violetta_rabat@yahoo.fr

Editor's Notes

  • #14: Instead of to ML Facilitates debugging Isolates compiler from changes in format of ML (new OS) Only assembler must be changed!
  翻译: