CS 330 Programming Languages Dr. Blaise W. Liffick Spring 2019
Programming Techniques Languages Programming Environments Problem Analysis Program Design Algorithms & Design Patterns Data Structures Paradigms Java C++ Hardware Network Linux Eclipse Programming Environments
Early Computers Late 1930’s, John Atanasoff, Clifford Berry ENIAC 1946 University of Pennsylvania J. Presper Eckert and John Mauchley John von Neumann, stored-program concept
First Generation: 1940 – 1956 Vacuum tubes Scientific oriented ENIAC UNIVAC – first commercial computer
Second Generation: 1956 – 1963 Transistors replaced vacuum tubes I/O via punch cards and printers First “high-level” languages developed Data processing introduced
Third Generation: 1964 - 1971 Integrated circuit (semiconductors) Keyboards & monitors Time sharing Computer “families” Minicomputers vs. mainframes
Fourth Generation: 1971 – ? VLSI CPU on a chip: Microprocessor Microcomputers & Supercomputers
Fifth Generation: ??? Based on artificial intelligence Big “Fifth Gen” project by Japanese in 1980’s Voice recognition, parallel processing, superconductors
Categories of Computers Supercomputers Mainframe Minicomputers Microcomputers Mobile devices Power Size Cost
Programming Languages Machine Language Most fundamental language of the computer Unique for each processor type Binary 0s and 1s that specify what to do 0010 0000 0000 0100 1000 0000 0000 0101 0011 0000 0000 0110
Table 1.2 A Program in Machine and Assembly Language
High - Level Languages Resemble human language Java, C++, C, Pascal, FORTRAN, Ada a = a + b; More compact and human understandable than machine language Must be translated into machine language
1.4 Processing a High-Level Language Program Set of programs used to develop software A key component is a translator Compiler Examples Java, g++, Microsoft Visual C++® Other programs needed Editor Linker Loader IDE (e.g. Eclipse)
Processing a Program Editor used to enter the program Like minimal word processor Creates source program file Compiler translates the source program Displays syntax errors Creates (usually) temporary object code file Linker/Loader to combine object file with other object files and execute program Creates final executable program
Executing a Program CPU Special instructions used to examines each program instruction in memory sends out command signals required to carry out the instruction Special instructions used to input data into memory for the program to use output data to display or printer (or other device)
Compilers Source File Object File Other Object Files Executable File Editor used to create program Compilers Source File Compiler translates program into machine language successful unsuccessful Object File Error Messages Linker connects object files Loader prepares for execution Other Object Files Executable File
Java .java .class Source File Byte Codes Other Object Files Editor used to create program Java .java Source File Compiler translates program into machine language successful unsuccessful Byte Codes .class Error Messages Other Object Files Java Runtime Environment