introduction to basis and practice in programmingcsl.skku.edu/uploads/gedb029f15/01-intro.pdf ·...

42
1 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected]) Introduction to Basis and Practice in Programming Fall 2015 Jinkyu Jeong ([email protected])

Upload: others

Post on 05-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

1 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

Introduction to Basis and Practice in Programming

Fall 2015

Jinkyu Jeong ([email protected])

Page 2: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

Course Overview

Page 3: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

3 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Class hour •  GEDB029-45: Mon. 13:00 ~ 14:50 •  GEDB029-46: Tue. 13:00 ~ 14:50 •  1~2 hours lectures at 400112 •  2~3 hours lab at 400212

!  Instructor: Jinkyu Jeong •  [email protected] •  http://csl.skku.edu/People/Jinkyu •  Office: #400626 in Semiconductor Bldg. •  Office hour: Thu. & Fri. 13:00 ~ 14:00

!  TA •  한용섭, [email protected], #400621 in Semiconductor Bldg. •  정기식, [email protected], #85533 in Corporate Collaboration

Center

Course Basics

Page 4: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

4 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Prerequisite Courses •  Engineering Computer Programming •  …

!  Programming Skill •  Nothing •  You will learn how to program in C

Prerequisites

Page 5: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

5 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Textbook •  A Book on C: Programming in C (4th Ed.),

–  Al Kelley, Ira Pohl –  Addison-Wesley, 1998

!  References •  C by Dissection: The Essentials of C Programming

(4th Ed.) –  Al Kelly, Ira Pohl, Addison Wesley, 2000

•  The C Programming Language –  Kernighan, Brian, and Dennis Ritchie, Prentice Hall, 1988.

•  Introduction to Computer Science Using Python: A Computational Problem-Solving Focus

–  Charles Dierbach, Wiley 2012

!  Course webpage •  http://csl.skku.edu/GEDB029F15/Overview

Course Materials

Page 6: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

6 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Exams 30% •  Final

!  Laboratory 30% •  Attendance •  Completion of programming exercises

!  Programming Assignments 30% •  Programming assignments (up to 4)

!  Participation & quiz 10% •  Homework & quiz •  Attendance

Grading

Page 7: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

7 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  All work submitted for credit must be your original ones.

!  Cheating on lab or homework •  “F” grade and a report to the Dean

!  Cheating on examination •  report to the president of SKKU

!  No exception on dishonesty

Academic Honesty

Page 8: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

Computers

Page 9: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

9 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  A general-purpose device that can be programmed to carry out a finite set of arithmetic or logical operations.

!  Since a sequence of operations can be readily changed, the computer can solve more than one kind of problem.

Computers?

Page 10: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

10 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Turing Machine

Conceptual Model of Computers

Read-write head

Tape

Table of Rules

Page 11: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

11 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  The 1st generation: Vacuum tube

History

MARK-1, 1941 ENIAC, 1946

EDSAC, 1949 EDVAC, 1951 UNIVAC 1, 1951

Von Neumann: "Stored Program"

Page 12: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

12 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

! The 2nd generation: Transistor •  Transistor invented in 1954 •  Operating system, FORTRAN, COBOL,

ALGOL

! The 3rd generation: Integrated Circuit •  IC developed by Jack St. Clair Kilby, Texas Instruments in 1959 •  Nobel Prize laureate for Physics in

2000

History

Page 13: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

13 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

! The 4th generation: LSI, VLSI •  Large Scale Integrated circuit •  Minicomputers and micro computers

appeared •  Network, Data Base system •  Computers became popular by PC

History

Page 14: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

14 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  von Neumann machine (Stored-program computer)

General Computer Architecture

Display, disks, keyboard, mouse, scanner, printer, network, …

Page 15: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

15 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  CPU (Central Processing Unit): the hardware within a computer system which carries out the instructions of a computer program by performing the basic arithmetical, logical, and input/output operations of the system.

Components of Computers

Page 16: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

16 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Memory: physical devices used to store programs (sequences of instructions) or data (e.g., program state information) on a temporary or permanent basis for use in a computer or other digital electronic device

!  Examples: RAM, ROM, Disks (HDD, SSD), …

Components of Computers

Page 17: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

17 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Computers play with numbers only •  Everything is represented by numbers

–  pictures, numbers, music

•  Binary: bit, byte, word, half word

All you have to know about computers for C programming

Page 18: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

Computational Thinking

Page 19: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

19 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  What a computer can do? •  Everything when you can explain exactly how to do •  E.g., “check if a number is a prime”

!  What a computer cannot do? •  Everything that you cannot explain exactly how to do •  E.g., Feeling, thinking, …

!  What a computer can do better than you •  Compute things extremely faster than you can do •  2.6 billion computations in one second

Computers

Page 20: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

20 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  You need a language to tell computers to do what you want •  Korean, English, ... natural languages are used by

human

–  Very difficult for computers to understand

•  Binary numbers are used by computers

–  Very difficult for human to understand

Problem Solving with Computers

00001111 10111111 01000101 11111000

00001111 10111111 01001101 11111000

Find the 100th prime number

Page 21: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

21 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  A language that describes what to do for a computer

!  Machine language •  binary •  only an expert use it

!  Assembly language •  alphabet •  most embedded system

!  High-level language •  C, Java, C++, ... •  Python, Matlab, … •  most software

Programming Languages

MOV AX, MIDSCORE MOV CX, FINALSCORE

ADD AX CX

MOV TOTALSCORE, AX

00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

00000011 10100001

01100110 10001001 01000101 11111010

TotalScore = MidScore + FinalScore;

Page 22: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

22 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Check if a number is a prime. !  Tell me how to determine step by step.

Problem Solving with Computer: Example

2, 3, 5, 13, 89, 233, 1597, 28657, 514229, 433494437, 2971215073, 99194894755497,

106634041749171059581572169, …

Page 23: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

23 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Recall what a prime number is.

Problem Solving with Computer: Example

A prime number is a natural number that has exactly two distinct natural number divisors

: 1 and itself

Page 24: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

24 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  A straightforward (simple ?) version: •  Input x •  Check if 2 divides x. If True, x is not a prime •  Check if 3 divides x. If True, x is not a prime •  … •  Check if k divdes x. If True, x is not a prime. •  If False, x is a prime.

!  What is k? •  the largest natural number which is at most √"  •  Think about why??

Problem Solving with Computer: Example

Page 25: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

25 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

Problem Solving with Computer: Example

Start

Declare x

Input x

3 divides x ?

T

F

T F

x is not a prime

x is a prime Stop

2 divides x ?

4 divides x ?

... 5 divides x ?

F

k divides x ?

Page 26: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

26 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  A better version •  Line 1: Input x •  Line 2: Set k with √"  •  Line 3: Assign 2 to n. •  Line 4: If n > k, x is a prime and goto Line 8 •  Line 5: If n divides x, x is not a prime and goto Line 8 •  Line 6: Increase n by 1 •  Line 7: Goto Line 4 •  Line 8: Stop

Problem Solving with Computer: Example

Page 27: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

27 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

Start

Declare n, k

Input x

Assign 2 to n

n > k ?

n ← n + 1

n divides x ?

Set k with √" 

T

F

T

F

x is a prime

x is not a prime

Stop

Problem Solving with Computer: Example

Page 28: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

28 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Flow chart: •  A type of diagram that represents an algorithm or

process, showing the steps as boxes of various kinds, and their order by connecting these with arrows.

!  Why flow chart and algorithms? •  This diagrammatic representation can give a step-by-

step solution to a given problem. •  Flowcharts are used in analyzing, designing,

documenting or managing a process or program

Programming

Page 29: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

29 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

A sequence of instructions written for a computer to perform a specified task

Programs

Page 30: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

30 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  A list of instructions

Program

Start

Declare n, k

Input x

Assign 2 to n

n > k ?

n <- n + 1

n divides x ?

Set k with the proper value

T

F T

F

x is a prime

x is not a prime

Stop

#include <stdio.h> #include <math.h> main() { int n, k, x; scanf( "%d", &x ); k = sqrt(x); n = 2; lable1: if( n > k ) { printf( "%d is a prime\n", x ); goto lable2; } if( x % n == 0 ) { printf( "%d is not a prime\n", x ); goto lable2; } n = n + 1; goto lable1; lable2: return; }

Page 31: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

31 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

! What are programs for ?

Programming

Programming

run

#include <stdio.h> #include <math.h> main() { int n, k, x; scanf( "%d", &x ); k = sqrt(x); n = 2; lable1: if( n > x ) { printf( "%d prime\n", x ); goto lable2; } n = n + 1; goto lable1; lable2: return; }

coding

test.c

19055BCB 4B1B0FCF DD1B0FCD E4284728 971D0FCF 4F53A809 C2D60DCF E6AD8DAC 4F8F4C70 2A70C745 1304691D 41D0A321 2497AF80 91BFFFD AA68A890 B4AA1B71 C7524194 91275960 58995EC8 1B210846 351A8CEE

compile

test.exe

Page 32: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

32 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

! What is programming? •  the process of designing, writing, testing, debugging,

and maintaining the source code of computer programs

! What is programming language? •  an artificial language designed to express

computations that can be performed by a computer •  C, C++, Java, Perl, Basic, Pascal, Fortran, COBOL, …

Programming

Page 33: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

33 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Hour of Code •  http://code.org •  Tutorials for beginners

Homework

Page 34: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

Introduction to C Language

Page 35: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

35 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Developed at Bell Lab., 1972 for system-level programming.

!  Used for implementing Unix OS

!  BCPL (Basic Combined Programming Language) " B language (Ken Thompson) " C language (Dennis Ritchie)

History of C Language

Page 36: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

36 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  1972: developed by Dennis Ritchie •  To develop an OS(Unix) for PDP-11 •  Small and efficient

!  1989: ANSI C •  Portable •  (= C90 by ISO)

!  C99 •  By ISO •  Not by MS

!  C11 •  By ISO

History of C Language

Page 37: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

37 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Efficient •  Developed for low-level (machine-level) execution

!  Portability •  Applicable to virtually all platforms from PCs to

Supercomputers

!  Powerful •  Provides various data types and operators

!  Flexibility •  Applicable from system-level to application-level

programming

!  Many Standard Libraries •  Input/Output, String handling, Storage allocation, …

Advantages of C Language

Page 38: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

38 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Error Prone •  Difficult to detect errors resulting from its flexibility

!  Difficulty •  Difficult to understand and modify it due to many

functionalities

Disadvantages of C Language

Page 39: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

39 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Making goals •  Understanding of requirements in given problems

!  Writing algorithms •  Writing pseudo codes or flow charts

!  Coding •  Translate the algorithm to C programming language

!  Compile & Link •  Translate a C program to machine codes

!  Execution & Debugging •  Test whether the program generates correct results •  Modifying programs to correct errors found in testing

!  Maintenance •  Keep improving and fixing issues in the program

Programming Development Cycle

Page 40: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

40 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Text Editor •  Store the written program (a simple text file) to

storage •  Replace the extension with c (e.g., filename.c) •  Use vi or emacs editor on Unix •  Source file means a human-readable code before

compiling it

!  Preprocessor •  As a part of compiler, it processes the lines beginning

with ‘#’ in the source code before compiling the source code

Programming Tools

Page 41: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

41 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

!  Compiler (& linker) •  Check the syntax of a source program and convert it

to a machine-understandable (executable) binary language

Programming Tools

(***.c) compiler

(~.exe)

(a.out)

source program executable program

Page 42: Introduction to Basis and Practice in Programmingcsl.skku.edu/uploads/GEDB029F15/01-intro.pdf · 2015-08-30 · GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong

42 GEDB029: Basis and Practice in Programming| Fall 2015 | Jinkyu Jeong ([email protected])

Source File

Preprocessed Source File

Object File

Executable File

Preprocessing Compile Link

Preprocessor Compiler Linker

Header File Library

Building Executable Program