The document discusses the generations of programming languages from machine language to modern languages. It covers the following generations:
1) Machine language and assembly language are low-level languages close to binary. They require translation and are complex for programming.
2) Imperative languages like COBOL, BASIC, and FORTRAN are high-level but require translation and are designed for specific uses.
3) Object oriented languages organize code around objects and features like inheritance and polymorphism. Event driven languages trigger outcomes based on events.
4) Logic languages are associated with artificial intelligence and use knowledge bases instead of procedural programming.
2. Generations of Programming Languages Logic languages 5 Object oriented languages 4 Imperative languages 3 Assembly language 2 Machine language 1 Language / Type Generation
3. Machine Language Low level language 1s and 0s Complex and long-winded for programming High level of developer control Ultimately everything is translated into machine language.
4. Assembly Language Low level language. Shortened instructions. Needs thousands of instructions to perform one useful task. Assembler program is needed to translate.
5. Imperative languages High level language Must have some form of translation. Usually written for a specific area of use: COBOL – business language BASIC – beginning programmer’s instruction code FORTRAN – scientists and engineers Structured and sequential – logical sequence 3 control structures
6. Object Oriented & Event Driven Languages High level language. Object oriented languages organise coding around objects. Specific characteristics: inheritance, polymorphism, classes etc… Event driven – the event triggers the outcome (eg: a click event). Non-procedural Examples: VB.NET, C++
7. Logic Languages High level language. Associated with Artificial Intelligence. Uses knowledge bases and expert systems. Less programmer control. Example: Prolog
8. Choice of language: Availability of programming translator program. Cost of language translator and cost in time to create program. Strengths and weaknesses of the programmer. Suitability of approach. Ease of programming in that language. Future viability of the language.