1_Programming_Langua..

advertisement
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
–
–
–
–
–
–
–
CMPE13
Problem definitions
Program plan
Comments within source code
Testing procedures
Narrative
Layouts of input and output
Program listing
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
–
–
–
–
CMPE13
1959
Business
Large complex data files
Formatted business reports
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:
Data:
Functions:
Cat:
CMPE13
cat
feet, nose, fur, tail
eat, purr, scratch, walk
Kitty, Tabby
30
OOP: Object-Oriented Programming
• Encapsulation – describes the objects selfcontainment
• 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
Download