Professional Documents
Culture Documents
Generation Programming Languages: By: Meisam Mousavi (116722)
Generation Programming Languages: By: Meisam Mousavi (116722)
Generation
Programming
Languages
By: Meisam Mousavi (116722)
Presentation Overview
Additional Components
Page 1 Of 33
5 Classes Of
Programming Languages
First Generation
Machine Language
Second Generation
Assembly Language
Third Generation
high-level programming languages, such as C, C++, and Java
Fourth Generation
Fifth Generation
languages used for artificial intelligence and neural networks
Page 2 Of 33
History Of 4GL
The term 4GL was according to James Martin first
Page 4 Of 33
Why 4GL?
Programming effort
They can be easily learnt since there are
relatively few commands, functions and
structures.
Page 5 Of 33
Why 4GL?
The time it takes to develop software
Additional Components
Some 4GLs have integrated tools which allow for the
easy specification of all the required information.
James Martin's Information Engineering systems
development methodology
allow the input of the results of system analysis and design in the form
Page 8 Of 33
4GL In Action
Database query languages:
SQL
Oracle SQL*Plus
Progress 4GL
Data-stream languages:
AVS
APE
Iris Explorer
Page 10 Of 33
4GL In Action
Report Generators:
Oracle Reports
LINC
GEMBase
BuildProfessional
Informix-4GL
Focus
Metafont
RPG-II
S
IDL-PV/WAVE
Gauss
Mathematica
Page 11 Of 33
Oracle
As A 4GE
Page 12 Of 33
FOURTH GENERATION
ENVIRONMENT (4GE) ?
In order to provide an environment in
4GE Components
Typical 4GE components:
END-USER QUERY LANGUAGE (e.g. SQL),
SCREEN FORMATTER (e.g. Oracle's screen
painter in SQL*Forms),
REPORT GENERATOR.
Page 14 Of 33
4GE Components
DATA DICTIONARY :
Page 15 Of 33
DBMS Rules
The database management system
performs two functions:
Page 16 Of 33
Oracle as a 4GE
SQL*Plus Allows users to create and manipulate tables using SQL.
SQL*Forms An interactive applications generator for creating
advanced, forms-based applications.
SQL*Loader A module to simplify the process of the entry of large
quantities of data into tables.
SQL*Report A module for generating complex reports.
SQL*Menu A module to enable the coordination of forms by an
interactive menuing system.
SQL*DD Design Dictionary - a structured system to monitor and
control the development from the initial analysis to running and
maintenance.
EASY*SQL An interface for inexperienced users of SQL using a mouse
and screen graphics.
SQL*Calc An Excel compatible spreadsheet that may use database
data; the spreadsheet cells can call SQL statements.
SQL*Graph Provides a graphical representation of data retrieved from
the database.
SQL*Text A module for creating a forms interface to large text
databases.
Page 17 Of 33
SQL
Structured Query Language
Page 18 Of 33
Update Commands
Insert
Delete
Update
Page 19 Of 33
where:
Page 21 Of 33
Increase all accounts with balances over $10,000 by 6%, all other
accounts receive 5%.
update account
set balance = balance 1.06
where balance > 10000
Page 22 Of 33
maximum length n.
int. Integer (a finite subset of the integers that is machine-dependent).
smallint. Small integer (a machine-dependent subset of the integer
domain type).
numeric(p,d). Fixed point number, with user-specified precision of p
digits, with n digits to the right of decimal point.
real, double precision. Floating point and double-precision floating point
numbers, with machine-dependent precision.
float(n). Floating point number, with user-specified precision of at least n
digits.
Null values are allowed in all the domain types. Declaring an attribute to be
not null prohibits null values for that attribute.
create domain construct in SQL-92 creates user-defined domain types
create domain person-name char(20) not null
Page 23 Of 33
time 09:00:30.75
Page 24 Of 33
branch-city
assets
The drop table command deletes all information about the dropped
relation from the database.
The alter table command can also be used to drop attributes of a relation
alter table r drop A
Page 25 Of 33
Embedded SQL
The SQL standard defines embeddings of SQL in a variety of
Page 26 Of 33
Dynamic SQL
Allows programs to construct and submit SQL queries at run time.
Example of the use of dynamic SQL from within a C program.
char * sqlprog = update account
set balance = balance * 1.05
where account-number = ?
EXEC SQL prepare dynprog from :sqlprog;
char account [10] = A-101;
EXEC SQL execute dynprog using :account;
Page 27 Of 33
Microsoft English
Query
Page 28 Of 33
How it works?
Page 30 Of 33
References
Page 31 Of 33
Thanks For
Attention!
Page 32 Of 33