Part 15

 

 

Fourth  Generation  Languages

 

 


5 Generations of Languages

 

1st Generation - Machine Language

·                    zeroes and ones

·                    wired panels

·                    switches

2nd Generation - Symbolic Assembly Language - 1950's

·                    op code mnemonics

·                    symbolic addresses

·                    1-1 to machine language

3rd Generation - High-Level Languages - 1960's

·                    ALGOL, FORTRAN, COBOL, PL/I, Pascal, Ada, C

·                    procedural (how)

·                    1-many to machine language

4th Generation – High Productivity Languages - 1980's

·                    some non-procedural aspects

·                    screen-oriented tools

·                    data base / data dictionary

5th Generation, - Artificial Intelligence Languages - 1990's

·                    inference processing

·                    encodes complex knowledge

·                    rule base / inference engine


4GL Objectives

 

·                    Speed up application building

·                    Ease of maintenance

·                    Minimize testing and debugging

·                    Generate bug-free code from specification

·                    User-friendly

·                    End-user generated

 

 

4GL Goals

 

·                    Order of magnitude less code

·                    Order of magnitude less programming time

·                    Based on the observed phenomenon that the number of lines of documented, delivered code produced per programmer per day is constant, regardless of the language


4GL Classification

 

(Martin) All languages possessing non-procedural aspects are 4GL's

·                    some have very limited functionality

e.g. Datatrieve, SQL

 

 

(Martin) Full-function 4GL

·                    builds anything that could be built in Cobol

MANTIS, IDEAL, NATURAL, APPLICATION FACTORY, IEF, IEW


Tool Categories

 

Programmer Tools (for 2 GLs and 3 GLs)

 

User Tools (frequently standalone)

 

Productivity Tools (4 GLs)

 

A.I. Tools (5 GLs)

 

CASE Tools (disposable source code)

 


Programmer Tools

 

Assemblers (2 GL to speed up 1 GL development)

Macros (originally a 2 GL feature, now used in 3 GLs)

Compilers (originally a 3 GL necessity, now also used in 4 GLs)

Editors

Librarian

JCL

Debug

Test Data Generator

Comparators

Performance Monitors

Optimizers

Code Profilers

Exception Handling Checkers

 


User Tools

 

Statistical Packages

Spreadsheets

Simulators

Linguistic Analyzers

Project Managers

Databases

Active Data Dictionaries

Query By Example

Drawing

Desktop Publishing

CAD/CAM

·                    Packaged Applications


Productivity Tools (4 GLs)

 

Spreadsheet Compilers

Database 4 GLs

Context Sensitive Editors

Source Code Control

Make Facility

Software Configuration Management

Code Restructurers

Rapid Prototypers

Screen Simulators

Re-engineering

Full-screen Debuggers

Integrated Query By Example

Application Generators

Report Generators

Graphics Languages

Decision Support

Very High Level Languages


A. I. Tools (5 GLs)

 

Expert System Shells

Theorem Provers

Natural Language Interpreters

Speech Recognizers

Speech Synthesizers

Pattern Recognition

Game Players

Composers

Robotics Languages


CASE Tools

 

Enterprise Analysis

Logical Process Analysis

Logical Data Analysis

Design Aids

Normalizers

Balancers

Integrated Project Management

Code Generators

Code Analyzers

Analytic Test Generators

Metric Analyzers

Reverse Engineering

Repository

Automated Documenters

Capture

Toolkits

Workbenches


Language Generations (James Martin)

 

 

 


“Popular” 3 GL Programming Languages in 1987

 

Ada

Algol

APL

BAL

BASIC

C

C++

Cobol

Coral

Fortran

GPSS

Lisp

Logo

Modula

Pascal

Pilot

PL/1

Prolog

RPG

Simscript

Simula

SmallTalk

Snobol

YACC

 


Jean Sammet’s Collection of 3 GL Languages in 1969

 

A-2

A-3

ADAM

AED

AESOP

AIMACO

ALGY

ALTRAN

AMBIT

AMTRAN

Animated Movie

APT

B-0

BACAIC

BASEBALL

BUGSYS

C-10

CLIP

CLP

COGENT

COGO

COLASL

COLINGO

COMIT

Commercial Translator

Computer Compiler

Computer Design

CORC

CPS

Culler-Fried

DAS

DATA-TEXT

DEACON

DIALOG

DIAMAG

DIMATE

DOCUS

DSL/90

DYANA

DYNAMO

DYSAC

English

473L Query

FACT

FLAP

FLOW-MATIC

FORMAC

FORTRANSIT

FSL

GAT

GECOM

GPL

GRAF

Graphic Language

ICES

IDS

Information Algebra

IPL-V

IT

JOSS

JOVIAL

Klere-May

L6

Laning and Zierler

LDT

Lincoln Reckoner

LOLITA

LOTIS

MAD

MADCAP

Magic Paper

MAP

MATHLAB

MATH-MATIC

Matrix Compiler

META 5

MILITRAN

MIRFAC

NELIAC

OCAL

OMNITAB

OPS

PAT

PENCIL

PRINT

Proposal Writing

Protosynthex

QUIKTRAN

Short Code

Simulating Digital

Systems

SOL

Speedcoding

SPRINT

STRESS

STROBES

Symbolic Mathematical Laboratory

TMG

TRAC

TRANDIR

TREET

UNCOL

UNICODE

 

 


James Martin’s List of 4 GLs in 1986

 

ADS/OnLine

by Cullinet

Application Builder

by James Martin Associates

Application Factory

by Cortex

Datatrieve

by Digital Equipment Corporation

EASYTRIEVE

by Pansophic Systems

EXPRESS

by Management Decision Systems

FOCUS

by Application Builders

GENER/OL

by Pansophic Systems

IDEAL

by Applied Data Research

INFO

by Henco

INQUIRE

by Infodata Systems

INTELLECT

by Artificial Intelligence Corporation

LINC

by Burroughs

MANTIS

by Cincom

MAPPER 10

by Sperry (Unisys)

MARK V

by Informatics General

MIMER

by Uppsala Data Center

NATURAL

by Software AG

NOMAD2

by D&B Computing Services

Personal Data Query

by Honeywell Information Systems

RAMIS II

by Mathematica Products Group

SAS

by SAS Institute

SPSS

by SPSS

SYSTEM W

by COMSHARE

TELL-A-GRAF

by Integrated Software Systems

UFO

by Oxford Software

Umbrella System

by Hogan Systems

Universe

by Computer Associates International

USE-IT

by Higher Order Software

 


List of 5 GLs in 1988

 

ADS

ALEX

Arity Expert

ART

Auto-Intelligence

C++

Emycin

Envisage

ES Expert

ESP Advisor

ExpertEase

Expert-2

EXSYS

FLOPS

Goldworks

Guru

HUMBLE

IN-ATE

Insight 2+

Intelligence Compiler

KDS3

KEE

KES

Keystone

Knowledge Craft

Knowledge Maker

Knowledge Pro

LISP

MacSMARTS

MIS Ex

M1/S1

NEXPERT/Object

OPS5

OPS83

PC-Easy/PC-PLUS

Personal Consultant

PROLOG

Rbest

Rulemaster

Superexpert

VP-Expert

WizdomMice

Xi Plus

XSYS

YES/OPS

1st-CLASS

 

 

 


Selection Criteria – 1st Generation

 

Basically the selection criteria for a processor

Registers available

Addressing modes

Memory addressing scheme

Symmetry of the instruction set

Types of arithmetic and operations supported

Compatibility with other instruction sets

Operating system(s) available

Microcoded / Trapped instructions (-)

Interrupts / buffers

Block / parallel instructions

 

Tools to consider

Availability of 2nd generation languages

Availability of cross-assemblers

Availability of editors, debuggers, etc.


Selection Criteria – 2nd Generation

 

Op code / addressing mode facility

Symbolic addressing / forward or backward referencing

Pseudo ops

Symbolic debugger

Checkpoing / breakpoint facility

Assembly / disassembly speed

Macro facility

- accept parameters

- extent of items allowing parameterization

Macro packages available

Operating system interaction

- symbolic links to operating system addresses

- input/output control system (IOCS) calls

- interrupt handling

Library / Source code control facility (SCCF)


Selection Criteria – 3rd Generation

 

Data types and structures

Storage management / arrays

Subprogram / function / procedure facility

Libraries of available routines

Program flow control structures

Data control mechanisms

Compiled vs. interpreted

Binding time

Operating environment

Theoretical model

Support for structured / object-oriented methodologies

Portability


Selection Criteria – 4th Generation

 

Simply query facility

Query by example

Full-function query / update / management facility

Report writer facility

Graphics interface facility

Decision support facility

Application generator facility

Active data dictionary

Specification language

Semi-procedural programming language

Existing parameterized application packages


Selection Criteria – 5th Generation

 

Knowledge representation schemes

Knowledge engineering tools

- problem description

- knowledge base

- rule base

Inference / search mechanism

Rapid prototyping / expansion / porting capability

User interface

- defaults

- solution status

- graphics

- stubs

Performance / productivity

Tools

- interpreters

- compilers

- debuggers

Suitability for a varied audience

Learning tools (for human user)

Pre-existing knowledge


Carma McClure’s List of 4GL Desired Features

 

Functionality – same as any 3GL

Query languages – SQL and more

Data entry / update facilities – can get to procedural

Procedural language – can reduce to textual source code

Screen design / screen handling

Data validation – against an active data dictionary

Integrity controls – foreign key, nulls, etc.

Auditability – audit rollback and recovery

Infra structures – data structure hierarchy, objects, conceptual integrity

Testing aids – tests for completeness and correctness

Training – generate training documents from code

User friendliness

Reports and graphics generators

Decision support tools – at least simple decision trees

Word processing

Database characteristics

Library facilities

Security features

System characteristics – homogeneous look and feel

Performance

Documentation – on use of tool