Vous êtes sur la page 1sur 36

Programming Languages

Telling computers what to do

CMPE13 1 Cyrus Bazeghi


Objectives
• Describe what programmers do and do not do
• Explain how programmers define a problem,
plan the solution and then code, test, and
document the program
• List and describe the levels of programming
languages – machine, assembly, high level, very
high level, and natural
• Describe the major programming languages in
use today
• Explain the concepts of object-oriented
programming

CMPE13 2
Program
Set of instructions written in a
programming language that tells the
computer what to do

CMPE13 3
Programmers
• Prepare instructions that make up the
program
• Run the instructions to see if they produce
the correct results
• Make corrections
• Document the program
• Interact with
– Users
– Managers
– Systems analysts
• Coordinate with other programmers to build
a complete system

CMPE13 4
The Programming Process
• Defining the problem
• Planning the solution
• Coding the program
• Testing the program
• Documenting the program

CMPE13 5
The Programming Process:
Defining the Problem

• What is the input


• What output do you expect
• How do you get from the input to
the output

CMPE13 6
The Programming Process:
Planning the Solution
• Algorithms
– Detailed solutions to a given problem
• Sorting records, adding sums of numbers, etc..
• Design tools
– Flowchart
– Pseudocode
• Has logic structure, but no command syntax
• Desk-checking
– Personal code design walk through
• Peer Reviews
– “Code walk through”/structured walk
through
CMPE13 7
The Programming Process:
Planning the Solution

Accept series
of numbers
and display
the average

CMPE13 8
The Programming Process:
Coding the Program
• Translate algorithm into a formal
programming language
• Within syntax of the language
• How to key in the statements?
– Text editor
– Programming environment
• Interactive Development Environment
(IDE)

CMPE13 9
VI

• Mode editor, comes with pretty much


all UNIX/LINUX distros
• Insert or command modes
• Cheat Sheet

http://www.lagmonster.org/docs/vi.html

CMPE13 10
Emacs

• A very “rich” editor


• More than just an editor
• Cheat Sheet

http://ccrma.stanford.edu/guides/packag
e/emacs/emacs.html

CMPE13 11
The Programming Process:
Testing the Program
• Translation – compiler
– Translates from source module into object
module
– Detects syntax errors
• Link – linkage editor (linker)
– Combines object module with libraries to
create load module
– Finds undefined external references
• Debugging
– Run using data that tests all statements
– Logic errors

CMPE13 12
The Programming Process:
Documenting the Program
• Performed throughout the
development
• Material generated during each step
– Problem definitions
– Program plan
– Comments within source code
– Testing procedures
– Narrative
– Layouts of input and output
– Program listing
CMPE13 13
Choosing a Language
• Choice made for you
– What is available?
– Required interface
• What do you know best?
• Which language lends itself to the
problem to be solved?

CMPE13 14
Language Generations
• Low levels closer to binary
• High levels closer to human code
• Five Generations:
– Procedural Languages
• Machine language
• Assembly language
• High-level language – 3GL
– Nonprocedural Languages
• Very high-level language – 4GL
• Natural language – 5GL

CMPE13 15
Machine Language
• Written in strings of 0 and 1
– Displayed as hexadecimal
• Only language the computer
understands
• All other programming languages
are translated to machine
language
• Computer dependent

CMPE13 16
Assembly Language
• Mnemonic codes
– Add, sub, tst, jmp…
• Names for memory locations
• Computer dependent
• “Assembler” translates from
Assembly to machine language

CMPE13 17
3GL: High-Level Languages
• 1960s
• Languages designed for specific
types of problems and used syntax
familiar to the people in that field
– FORTRAN: (FORmula TRANslator)
• Math
– COBOL: (COmmon Business Oriented
Language)
• Business
• Compile translates from high-level
language to machine language
CMPE13 18
4GL: Very High-Level Languages
• Programmer specifies the desired
results; the language develops the
solution
• Ten times more productive with a
4GL than a procedural language
• Query Languages
– Retrieve information from databases
– Easy to learn and use

CMPE13 19
5GL: Natural Languages
• Resemble natural
or spoken English
• Translates human
instructions into
code the computer
can execute
• Commonly used by
non-programmers
to access
databases

CMPE13 20
Third Generation Languages:
Traditional Programming

• Describe data
• Describe procedures or operations
on that data
• Data and procedures are separate

CMPE13 21
Third Generation Languages
• FORTRAN
– 1954
– Represent complex mathematical formulas
– C/C++ has replaced FORTRAN
• COBOL
– 1959
– Business
– Large complex data files
– Formatted business reports
CMPE13 22
Average a list of numbers

Accept series
of numbers
and display
the average

CMPE13 23
Third Generation Languages

FORTRAN

CMPE13 24
Third Generation Languages

COBOL

CMPE13 25
Third Generation Languages
• BASIC (Beginners All-purpose Symbolic Instruction
Code)
– 1965
– Popularity grew with PC popularity (1970s)
– Easy to learn
– Used little memory
– Bill Gates beginnings.. MS Basic
• RPG
– 1965
– Report generation – quickly creates complex
reports

CMPE13 26
Third Generation Languages

BASIC

CMPE13 27
Third Generation Languages
• MS Visual Basic
– 1987
– Create complex user interfaces
– Uses standard Windows features
– Event-driven – user controls the program
• C
– 1972
– Efficient code – the language of UNIX
– Portability
• C++
– Enhancement of C (Object Oriented)

CMPE13 28
Third Generation Languages

C++

CMPE13 29
OOP: Object-Oriented Programming
• Object
– Self-contained unit of data and instructions
– Includes
• Related facts (data)
• Related functions (instructions to act on that data)
• Example
– Object: cat
– Data: feet, nose, fur, tail
– Functions: eat, purr, scratch, walk
– Cat: Kitty, Tabby

CMPE13 30
OOP: Object-Oriented Programming
• Encapsulation – describes the objects self-
containment
• Attributes – the facts that describe the
object
• Methods / operations – the instructions that
tell the object what to do
• Instance – one occurrence of an object
• Messages – activate methods
– Polymorphism
Example: A „walk‟ message causes Kitty to
move (in a cat-like way)

CMPE13 31
OOP: Object-Oriented Programming
• Class – defines characteristics unique to
all objects of that class
• Inheritance – Objects of a class
automatically posses all of the
characteristics of the class from which
it was derived
• Subclass – inherits characteristics from
class and defines additional
characteristics that are unique
• Instance – actual occurrence of an
object

CMPE13 32
OOP: Object-Oriented Programming

Example
Class: Boat
Subclass: Canoe
Subclass: Powerboat
Subclass: Sailboat
Instance: Chardonnay II

CMPE13 33
OOP: Object-Oriented Programming

Using Objects in Business


Class: Customer
Subclass: Retail or Wholesale
Instance: John Smith
Retail and Wholesale customers
automatically inherit customer address
since it is part of the Customer class

CMPE13 34
OOP: Object-Oriented Programming
Languages
• C++
Can write both structured and object-oriented code
• Visual Basic
Rudimentary features of object-oriented language

CMPE13 35
Third Generation Languages
Java
• Cross-platform
• Java Virtual Machine (JVM)
– Sits on top of computer‟s regular platform
– Translates compiled Java code into instructions
for the specific platform
• Applets

CMPE13 36

Vous aimerez peut-être aussi