Lecture 07 - Programming Languages
Lecture 07 - Programming Languages
Programming Languages
& Program Development
-2-
Programming Languages
& Program Development
-3-
Development of Programming Languages
Non-
Machine Assembly High Level Natural
Procedural
Language Language Languages Languages Languages
-4-
1st Generation: Machine Language
-5-
2nd Generation: Assembly Language
Assembly language
Machine dependent
Programs use:
Mnemonics, brief abbreviations for program instructions which
makes assembly language easier to use
-6-
2nd Generation: Assembly Language cont.
-7-
3rd Generation: High Level Languages
-8-
3rd Generation: High Level Languages
Translators
Compilers translate source code into object
code (object program)
-10-
3rd Generation: High Level Languages
-11-
Compilation
-12-
Interpreter
-13-
Compilation vs. Interpretation
Procedural
Visual
OOP
Web-based
-15-
Types of High Level Languages
Procedural Languages
A sequence of instructions to run, which uses program
control structures ( IF, Loops, Functions…)
Examples: PASCAL, BASIC, COBOL, FORTRAN
Event-driven Languages
Waits for events (mouse click, button press…) to process a
defined set of instructions (event handler)
Examples: C++, Javascript
-16-
Types of High Level Languages
Visual Languages
Allow programmer to manipulate items visually on a form
setting their layout and properties.
Creating Graphical User Interface (GUI) applications.
Examples: Visual Basic, Visual C++, Delphi
Web-based Languages
Uses special coding instructions to indicate style and
layout of text and other elements of web sites.
Mark-up and scripting languages.
Examples: HTML, XML, ASP
-17-
Types of High Level Languages
Relies on reusability
Makes information hiding (encapsulation) a reality
Examples: C#, Java, Python
-18-
4th Generation: Non-Procedural Languages
Non-procedural languages
Do not require step-by-step procedures to achieve the
appropriate programming outcome
Allows complex operations to be processed in one statement
Examples
Database report generators
Query languages: Structured Query Language (SQL)
-19-
5th Generation: Natural Languages
Natural language
Non-procedural
Example: Prolog
-20-
Sample Code for Language Generations
~-----------------------------------------------------------------------------------------------------------0-----------------------------------------------------------------------------------------------------------~
-21-
One Size Doesn’t Fit All
~-----------------------------------------------------------------------------------------------------------0-----------------------------------------------------------------------------------------------------------~
-23-
Program Development Life Cycle (PDLC)
-24-
PDLC Phases
Analysis
Deploym
Design
ent
Testing Coding
-25-
1. Analysis
Processing
Output data
-26-
2. Design
-27-
Desk Checking
-28-
3. Coding
Syntax errors
Mistakes in the construction of the programming
commands
Must be corrected for the program to run
-29-
3. Coding cont.
-30-
3. Coding cont.
Version Control SW
• SW tools that help team members manage changes
to the source code over time
• Keeps track of every modification by each
contributor
• Developers can turn back to earlier versions to help
fix any mistakes
• Example tools:
Git, CVS, SVN, Mercurial and Bazaar….
-31-
4. Testing
Static Testing
Manual or automated review for
Code (static code reviews)
Requirements and design documents (technical reviews)
Dynamic Testing
Check the functional behavior of a SW unit by entering test
data and comparing results to the expected results
-32-
Dynamic Testing Opacity
White-box testing
Testing all possible logic paths in the software unit
Deep knowledge of the logic
Makes each program statement execute at least
once
-33-
5. Deployment and Maintenance
Deployment
All processes involved in getting new SW up and running
properly in its environment, including installation,
configuration running, testing and making necessary
changes
Maintenance
Evaluate the program on a regular basis
-34-
Documenting the Program
-35-
Complete
-38-
Differentiate Between
-39-
Thank You