1 / 43

Lecture 2 Introduction to C Programming

Lecture 2 Introduction to C Programming. Arne Kutzner Hanyang University / Seoul Korea. This week …. You will learn: From the first Computers to the C Programming Languages Von Neumann Architecture The Idea of “binary computing” Origins of Programming Languages

regina
Download Presentation

Lecture 2 Introduction to C Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture 2Introduction to C Programming Arne Kutzner Hanyang University / Seoul Korea

  2. This week … • You will learn: • From the first Computers to the C Programming Languages • Von Neumann Architecture • The Idea of “binary computing” • Origins of Programming Languages • About Flowcharts and Algorithms Introduction to C Programming

  3. Von Neumann’s Computer Architecture Foundations of modern Computers and their Programming

  4. Computers until the second world war and before • The earliest computing machines had fixed programs. • The earliest computers were not so much "programmed" as they were "designed". • "Reprogramming", when it was possible at all, was a laborious process, starting with flow charts and paper notes, followed by detailed engineering designs, and then the often arduous process of physically rewiring and rebuilding the machine. Introduction to C Programming

  5. Examples of “fixed program computers” • Colossus Mark I (Dec. 1943) / Colossus Mark II (June 1944) • Purpose: • Message Decoding during World War 2 • (was used to help decipher teleprinter messages which had been encrypted using the Lorenz SZ40/42 machine (Enigma)) INFO in the Web: http://en.wikipedia.org/wiki/Colossus_computer Introduction to C Programming

  6. Von Neumann Architecture (proposed 1945) Memory Control Unit Arithmetic Logic Unit Accumulator Input Output Introduction to C Programming

  7. Von Neumann Architecture (2) • The Control Unit “understands” instructions like e.g. copy data from the memory to the accumulator => Instruction Set Architecture • The Arithmetic Logic Unit performs arithmetic operations and Boolean operations. • The Memory stores data and Program (Series of control unit instructions • The Input takes data in form of an data stream from some medium • The Output receives data in form of data stream and delivers them to some output medium Introduction to C Programming

  8. Von Neumann Architecture (3) • Von Neumann’s approach was revolutionary because:He created an instruction set architecture and detailed the computation as the execution of a series of instructions (the program) stored in the memory. • Program and data share the memory !! • Highly flexible computer design Introduction to C Programming

  9. Structure of Memory Addresses Memory Cells • Ordered sequence of storage locations called memory cells. • Each memory cell is identified by a unique address 0000 43 0001 87 0002 06 0003 00 0004 12 0005 00 Content of a memory cell Introduction to C Programming

  10. Instruction representation • Instruction are encoded using sequences of bits • Example PDP-11(single operand instructions): INFO in the Web: http://en.wikipedia.org/wiki/PDP-11 16 bit = 2 byte 10 bit 3 bit 3 bit Introduction to C Programming

  11. Main Memory Input Output Computer nowadays? • Almost all modern computer have still a Von Neumann Architecture CPU Introduction to C Programming

  12. How to program “von Neumann” computer ?

  13. Assembler Code • Sequence of processor instructions in human readable text-form – this is called Assembler Code • Example for PDP-11 Assembler Code: .TITLE HELLO WORLD .MCALL .TTYOUT,.EXIT HELLO:: MOV #MSG,R1 ;STARTING ADDRESS OF STRING1$: MOVB (R1)+,R0 ;FETCH NEXT CHARACTER BEQ DONE ;IF ZERO, EXIT LOOP .TTYOUT ;OTHERWISE PRINT IT BR 1$ ;REPEAT LOOPDONE: .EXIT MSG: .ASCIZ /Hello, world!/ .END HELLO This PDP-11 Assembler Code prints “Hello World” Introduction to C Programming

  14. Assembler and Programming Languages • Assembler was the first form of some primitive (low-level) programming language • Definition:A programming language is a set of rules that provides a way of telling a computer what operations to perform. Introduction to C Programming

  15. Disadvantages of Assembler Code • Low level of abstraction • Code is processor (vendor)-specificTherefore: Non portable • The code is unstructured • Difficult to read • Risk of “spaghetti-structure” • Time intensive to learn and to program Introduction to C Programming

  16. High-level Programming Languages • The wish for some programming medium that is more abstract than assembler lead to the development of High-level Programming Languages • Definition:A high-level programming language is a programming language that, in comparison to low-level programming languages, may be more abstract, easier to use, or more portable across platforms. Introduction to C Programming

  17. Early high-level programming languages • Fortran:For programming in the scientific area (number crunching) • Cobol:For programming of business applications (e.g. banking applications) • Lisp:Development originally motivated be research in the Artificial Intelligence area Introduction to C Programming

  18. Fortran Code Example c23456789012345678901234567890123456789012345678901234567890123456789012 PROGRAM spherec This program determines the surface area and volume of a sphere, given c its radius.c Variable declarations REAL rad, area, volume, pic Definition of variablesc rad = radius, area = surface area, volume = volume of the spherec Assign a value to the variable pi. pi = 3.141593c Input the value of the radius and echo the inputted value. PRINT *, 'Enter the radius of the sphere. ' READ *, rad PRINT *, rad, ' is the value of the radius. 'c Compute the surface area and volume of the sphere. area = 4.0 * pi * rad**2 volume = (4.0/3.0) * pi * rad**3c Print the values of the radius (given in cm), the surface area (sq cm),c and the volume (cubic cm). PRINT *,'In a sphere of radius', rad, ' , the surface area is', + area, ' and its volume is', volume, '. ' STOP END Introduction to C Programming

  19. COBOL Code Example $ SET SOURCEFORMAT"FREE"IDENTIFICATION DIVISION.PROGRAM-ID. Multiplier.AUTHOR. Michael Coughlan.* Example program using ACCEPT, DISPLAY and MULTIPLY to* get two single digit numbers from the user and multiply them together DATA DIVISION. WORKING-STORAGE SECTION.01 Num1 PIC 9 VALUE ZEROS.01 Num2 PIC 9 VALUE ZEROS.01 Result PIC 99 VALUE ZEROS. PROCEDURE DIVISION. DISPLAY "Enter first number (1 digit) : " WITH NO ADVANCING. ACCEPT Num1. DISPLAY "Enter second number (1 digit) : " WITH NO ADVANCING. ACCEPT Num2. MULTIPLY Num1 BY Num2 GIVING Result. DISPLAY "Result is = ", Result. STOP RUN. Introduction to C Programming

  20. Programming Languages Introduction to C Programming

  21. Why was C created ? • The origin of C is closely tied to the development of the Unix operating system • Originally Unix was implemented in Assembler for the PDP-7 (1970) • 1973 Unix was “rewritten” for the PDP-11 architecture using the newly developed C Programming Language • An older language “B” was unsuitable for this purpose due to some language design lacks Introduction to C Programming

  22. Characteristics of C • Primitive but fast • Quite “low-level” compared to e.g. Java • Some people say: “More or less like assembler but independent of any specific instruction set” • Strange and quite cryptic syntax • Difficult to grasp Introduction to C Programming

  23. The Idea of Binary Computing Binary Number, Hexadecimal Number and the encoding of characters

  24. Binary Numbers • A sequence of 1s and 0s can be interpreted as a decimal numbere.g. 101 = 1*22 +0*21 +1*20 = 5 • These type of number (0 and 1 represented) is called Binary Number Introduction to C Programming

  25. 8 bits = 1 Byte • Todays computer architectures are based on a 8 bits (= 1 Byte) approach. • E.g. one memory cell has nowadays 1 Byte 7 6 5 4 3 2 1 0 1 0 1 0 1 1 0 0 = 172 Introduction to C Programming

  26. Hexadecimal Numbers (1) • Counting on the foundation of 16 digits (0 – F) • Reasonable in the context of the decomposition of binary number into blocks of 4 bits Introduction to C Programming

  27. Hexadecimal Numbers (2) 16 bit • Example: 8 bit (1 Byte) 8 bit (1 Byte) binary hex decimal Introduction to C Programming

  28. Exercise • What is the number 01000111 in decimal notation? • What is the number 156 in hexadecimal notation? Introduction to C Programming

  29. Characters and Numbers • Using a Code Table numbers can be mapped to characters of some alphabet.Example (part of the ASCII table): Introduction to C Programming

  30. Sequences of Characters (Strings) • Text is represented as a sequence of characters (numbers) • Such sequences are called Strings • Example: The Text "Hello" as sequence of characters (numbers) Introduction to C Programming

  31. Algorithms and Flowcharts Binary Number, Hexadecimal Number and the encoding of characters

  32. Algorithms - Introduction • In order to solve some problem, we need some description how to solve it.E.g. Cooking some eggs:How to cook eggs? • Put some water into a pot • Heat the water until it cooks • Put the eggs into the water • Wait 3 Minutes • Take the eggs out of the pot and cool them under floating water • Such a description of a problem solution is called an Algorithm Introduction to C Programming

  33. Algorithms described as Flowcharts START Our “Cook-eggs”-Algorithm as Flowchart: No Water in pot ? put water into pot Yes Wait 3 Minutes Heat water Take eggs out of pot Water cooking ? No Cool the eggs Yes END Introduction to C Programming

  34. Flowchart Atoms • Statement – Some operation as e.g. “put the eggs into water” Statement put water into pot Introduction to C Programming

  35. Flowchart Atoms (cont.) • Condition: Some yes/no question (condition). Depending on the answer Yes (True) or No (False) we go different ways. No Condition Yes Introduction to C Programming

  36. Combined Flowchart Constructs Yes No Condition if side else side • If/else – alternative: Construct where select on of two alternative sequences of statements, depending on the result of the condition Statement Statement Statement Statement Introduction to C Programming

  37. Combined Flowchart Constructs (cont.) • If/else example: (Here we do nothing on one side, but this is ok) No Water in pot ? put water into pot Yes Introduction to C Programming

  38. Combined Flowchart Constructs (cont.) Statement 1 • Loop: Special construct with a Condition where one alternative of the Condition creates a circular flow Statement n Question Introduction to C Programming

  39. Combined Flowchart Constructs (cont.) • Loop Example: Heat water Water not cooking ? YES Introduction to C Programming

  40. Algorithmic Description • Solutions for all realistic Problems can be algorithmically described by combing the introduced elements: • Statements • If/else alternatives • Loops Introduction to C Programming

  41. Variables • Variables are named containers that store some type of data, e.g. a number.Example: Variable x Value of x x 0 read x from user input user input is 93 x 93 User input is typically something typed on the keyboard Introduction to C Programming

  42. Variables in Flowcharts • Example: Calculation of the maximum of two numbers: read x from user input read y from user input No Yes x > y set max to y set max to x print max on output Introduction to C Programming

  43. Exercise • Take a piece of paper and draw a flowchart that: • reads the value of three variables x and y and z • calculates the minimum of the three variables read before Introduction to C Programming

More Related