천안천일고등학교 Copyright © by Ryu Bin All rights reserved 프로그래밍 실무
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 1. 프로그램과 프로그래밍 1. 프로그램의 개념 프로그램 (Program) : 컴퓨터가 알 수 있는 언어를 이용하여 일의 처리 순서를 기술한 명령문의 집합 프로그래밍 (Programming) : 프로그램을 작성하는 일련의 과정 알고리즘 : 프로그램을 작성하기 위해서는 컴퓨터가 처리할 수 있도록 논리를 만들어야 하는데, 이러한 문제 해결을 위한 절차나 방법
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 2. 프로그램 언어 원시프로그 램 번역기 ( 어셈블러, 인터프리터, 컴파일러 ) 기계어 프로그램 1. 언어의 분류
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 2. 프로그램 언어 (1) 기계어 장점 : 0 과 1 의 2 진수만을 사용하여 명령어와 데이터를 나타내는 기계중심의 언어로, 컴퓨터가 직접 이해할 수 있어서 실행속도가 매우 빠르다. 단점 : 하드웨어에 대한 지식이 없으면 프로그램 작성이 어렵다.
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 2. 프로그램 언어 (2) 어셈블리어 기계어의 0 과 1 의 숫자 대신 영문으로 된 상징적인 단어를 기계어와 1:1 로 대응시켜 명령어를 표시함으로 기계어에 비해 상대적으로 이 해하기 쉽다. 어셈블리어고급언어 MOV AX, A ADD AX, BC = A + B MOV C, AX
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 2. 프로그램 언어 저급언어의 문제를 해결하기 위하여 사람이 작성하기 쉽고 이해하 기 쉽도록 만든 언어 단점 : 고급 언어로 작성된 프로그램을 실행하기 위해 컴파일러나 인터프리터 등을 이용해 기계어로 번역해야 하므로 수행시간이 오래 걸린다. 예 : BASIC, ALGOL, PASCAL, C, C++, FORTRAN, COBOL 등
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 2. 프로그램 언어 저급언어 ( 기계어, 어셈블리어 ) 2. 프로그래밍 언어의 발전 FORTRAN :, ALGOL 60, COBOL, LISP 등 FORTRAN ALGOL 수치 자료와 동질성의 배열을 강조 과학 계산용 최초의 블록 구조 언어 COBOL
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 2. 프로그램 언어 2. 프로그래밍 언어의 발전 대부분의 컴파일러가 이 시기에 개발됨 예 ) PL/I, ALGOL 80, SNOBOL 4, APL, BASIC, PASCAL, C 등 APL ( 인터프리터 ) 대수적인 연산자 이용 수학 계산 및 자료처리용 대화형 언어 LISP ( 인터프리터 ) 메사추세츠 공과 대학의 인공지능 그룹에서 개발 APL 과 FORTRAN 의 영향을 받음 기본 자료 구조가 연결 리스트 재귀호출 ( 되부름 : recursion) 을 많이 사용 인공지능관련 문제 처리에 적합 PL/1 ( 컴파일러 ) FORTRAN, ALGOL, COBOL 등의 장점을 모은 언어 많이 사용되지 않음 SNOBOL ( 인터프리터 ) 1962 년 문자열 처리를 위해 개발 강력한 패턴 매칭 (Pattern Matching) 을 제공하는 문자 처리용 BASIC ( 인터프리터 ) 1965 년 발표된 대화형 언어 GW-BASIC 이 대표적인 인터프리터 QuickBasic 은 구조적 프로그램을 지원하는 형태 로 발전 개체지향 개념을 지원하는 Visual Basic 으로 발전 PASCAL ( 컴파일러 ) 1971 년 개발 ALGOL 의 후속 언어 알고리즘 기술 언어로 각광 구조적 프로그래밍 기법 사용 문법이 엄격하여 교육용 언어로 각광 비주얼 프로그래밍 언어인 델파이 (Delphi) 로 발전 ADA ( 컴파일러 ) 1979 년 완성 수학응용, 시스템 프로그램, 실시간ㆍ병렬처리 응용을 위한 패키지 단위 프로그램의 안전도, 유지 보수, 인간의 활동과 효율에 중점을 두고 개발 C ( 컴파일러 ) 1974 년 시스템 프로그래밍을 위해 개발 UNIX 운영체제를 위해 개발 수치해석, 텍스트처리, 데이터베이스 처리 등의 범용 개체지향 설계를 적용한 C++ 로 발전
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 2. 프로그램 언어 데이터베이스 및 질의 언어, 스프레드시트, 응용 프로그램 생성기 등 2. 프로그래밍 언어의 발전 Visual Basic, Visual C, Delphi, Java 등 Java ( 컴파일러 ) 1995 년선 마이크로시스템즈에 의해 소개 개체지향, 분산 네트워킹 지원 이식성이 강하고, 단순하다. 동적이며 안전하다.
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 2. 프로그램 언어 2. 프로그래밍 언어의 발전 세대 구분특 징 1 세대 저급 언어의 세대로 기계어 사용 2 세대 저급 언어의 세대로 어셈블리어 사용 3 세대 프로시저 지향 (procedure-oriented) 의 고급 언어 세대 업무용, 범용, 과학계산용 언어 출현 4 세대 비절차적 형태의 고급 언어 세대 그래픽 사용자 인터페이스에 의한 질의와 답변 형태의 대화식 환경 제공
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 2. 프로그램 언어 3. 프로그래밍 언어의 요건과 선정 기준
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 3. 프로그램의 번역과 실행 1. 프로그래밍 언어 처리기 (1) 어셈블러 원시프로그램 ( 어셈블리어 ) 어셈블러 (Assembler) 목적프로그램 ( 기계어 )
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 3. 프로그램의 번역과 실행 1. 프로그래밍 언어 처리기 (1) 인터프리터 원시프로그램 (Source Program) 인터프리터 (Interpreter) 1 행 번역 1 행 실행 반복
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 3. 프로그램의 번역과 실행 1. 프로그래밍 언어 처리기 (3) 컴파일러 원시프로그램 (Source Program) 컴파일러 (Compiler) 목적프로그램 (Object code)
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 3. 프로그램의 번역과 실행 1. 프로그래밍 언어 처리기 컴파일러형 언어인터프리터형 언어 목적 프로그램을 생성목적 프로그램을 생성하지 않음 프로그램 단위로 번역줄 단위로 해석 번역 속도가 느림번역 속도가 빠름 실행 속도가 빠름실행 속도가 느림 메모리를 많이 차지메모리를 적게 차지 번역후 컴파일러 없이 실행 가능인터프리터가 있어야 실행 가능 FORTRAN, ALGOL, PL/I, PASCAL, COBOL, C, ADA 등 BASIC, LISP, SNOBOL4, APL, PROLOG 등
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 3. 프로그램의 번역과 실행 2. 프로그램 번역과 실행 과정 원시프로그램 (source program) 목적프로그램 (object program) 로드 모듈 (load module) 실행 컴파일러 (compiler) 링커 (linker) 로더 (loader) 가. 링커 (linker) 하나 또는 여러 개의 컴파일된 해당 목적 코드 내에서 호출하는 라이브러 리 프로그램을 통합해 실행 가능한 하나의 로드 모듈로 만들어 준다.
Copyright © by Ryu Bin All rights reserved. 천안천일고등학교 3. 프로그램의 번역과 실행 2. 프로그램 번역과 실행 과정 원시프로그램 (source program) 목적프로그램 (object program) 로드 모듈 (load module) 실행 컴파일러 (compiler) 링커 (linker) 로더 (loader)