* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download CS105 Introduction to Computer Concepts Intro to programming
Falcon (programming language) wikipedia , lookup
Programming language wikipedia , lookup
Program optimization wikipedia , lookup
Algorithm characterizations wikipedia , lookup
One-pass compiler wikipedia , lookup
Go (programming language) wikipedia , lookup
History of compiler construction wikipedia , lookup
Cross compiler wikipedia , lookup
C Sharp (programming language) wikipedia , lookup
CS105 Introduction to Computer Concepts Intro to programming Instructor: Yang Mu Number system comic Outline • Programming Languages • History • Implementation • Algorithm Design • Problem Solving • Pseudocode 5/24/2017 3 Programming Language • First-generation: Machine language • Second-generation: Assembly language • Third-generation: High-level language • Fourth-generation • (Fifth-generation) 5/24/2017 4 What program can do Three properties of programming language • Readability • Write efficiency • Execute efficiency 1GL: Machine language A set of primitive instructions built into every computer The instructions are in the form of binary code • 1101101010011010 Computers can run instructions only in machine language! • Machine code is represented using bytes. • It is tedious to read and write. • Each family of processor (x86, ARM) understands different machine languages. 5/24/2017 7 2GL: Assembly language • Low-level programming language to represent machine-language instructions • E.g.: ADDF3 R1, R2, R3 • Assembly code need to be converted into machine code by using an assembler • Assembly program • is platform dependent • Combination of mnemonic and machine instruction • Every assembly language instruction has a direct analogue in the form of a machine language instruction. • Still difficult to write, but at least readable. • Still processor-family specific, since it is directly associated with a machine language. • Only used to program when absolutely necessary. 5/24/2017 8 3GL: High-level language • English-like and easy to learn and program. • E.g.: • Area = 5 * 5 * 3.1415; • COBOL, FORTRAN, BASIC, Pascal, Ada, C, Visual Basic, Delphi, C++, C#, Java • Source program is compiled into machine code by a compiler and linked to supporting library code by a linker to form an executable file. 5/24/2017 9 4GL / 5GL • 3GL offered greater power to the programmer, while 4GL open up the development environment to a wider population. (Applications Development Without Programmers) • Database query languages: SQL… • Data manipulation, analysis, and reporting languages: MATLAB, SPSS… 5/24/2017 10 Category (3GL) • Windows Application • C, C++, Java, Visual Basic, C# • Web Application • Server Side • PHP, JSP (Java), ASP.NET (Visual Basic, C#), … • Client Side • JaveScript, VBScript 5/24/2017 11 The Binary Machine • A modern computer can run programs written in JavaScript, Pascal, Visual Basic, Visual C++, etc. • However, computers can only understand one language: the machine language it is not easy to use. • The machine language of a Sun workstation is different from a PC (or other platform), however, they can run the same C++ program. 5/24/2017 12 Two types of Translators (3GL to 1GL) • Interpreter: • translate and run the source code one line at a time. Easy to write and easy to find the errors in the program, but running very slow. crossplatform • JavaScript, VBScript, Java, Python, PHP, … • Compiler: • translates the source code once and for all, producing a complete machine language program. Very fast, but when the program fails, difficult to show the programmer where are the errors. • C, C++, C#, and so on. 5/24/2017 13 Implement a Language • Generally, the action of any translating program can be divided into three phases • Scanning • Parsing • Code generation 5/24/2017 14 Implement a Language - Scanning • Scanning process: a long string of characters is broken into tokens. • Example: sum = a + b is broken into 5 tokens sum, =, a, +, b • A token is the smallest meaningful unit of information. 5/24/2017 15 Implement a Language - Parsing • Parsing: the string of tokens is transformed into a syntactic structure. • What happens in a compiler or interpreter is that the list of tokens is converted to a parse tree in memory via a complicated algorithm. = sum + a 5/24/2017 b 16 Parsing a complicated equation 5/24/2017 17 Parsing a complicated equation 5/24/2017 18 Problem Solving • Algorithm: set of unambiguous instructions to solve a problem • Breaking down a problem into a set of sub-problems • Example: Clean the house • Without instructions – computers cannot do anything at all! 5/24/2017 19 Algorithm Design: Basic concepts • • • • Instructions – simple and unambiguous Variables – input and temporary Sub procedures – smaller tasks Looping: FOR each variable, WHILE • • Conditional statements: IF ELSE • 5/24/2017 Act of repeating tasks Selectively execute instructions 20 Pseudocode: Flowchart • • Flowchart: diagram that represents an algorithm Symbols: START , END LOOPS, FLOW OF CONTROL INSTRUCTIONS CONDITIONALS 5/24/2017 21 Pseudocode: Flowchart Fixing non functioning lamp algorithm 5/24/2017 22 Baking a Cake 5/24/2017 23