라기의 IT's time

[3-1강]프로그래밍언어.pdf
0.10MB

프로그래밍 언어

1. 프로그래밍 언어

1) 프로그래밍 언어의 정의

∙ 프로그램을 작성할 수 있는 언어로 기계가 이해할 수 있으면서 사 람이 이해할 수 있는 형태로 컴퓨터가 주어진 작업을 수행하도록 명시하는 방법

2) 평가기준

∙ 판독성(Readability)

∙ 작문성(Writability)

∙ 신뢰성(Reliability)

∙ 비용(Cost)

 

2. 프로그래밍 언어의 발전 과정

1) 1세대 언어(1950년대) - 기계어, 어셈블리어

2) 2세대 언어(1950년대 말 ~ 1960년대 초) - 고급 언어 개발에 중점

3) 3세대 언어(1960년대 중반 ~ 1970년대) - 절차적 언어의 기초 확립

4) 4세대 언어(1980년대) - 비 절차적 언어, 데이터베이스 및 질의 언어

5) 5세대 언어(1990년대) - 인공지능 분야, 자연어

∙ 절차적 언어(ProceduralLanguage):기존 고급 언어들로 프로그래밍 할 때 문 제 해결을 ‘어떻게,어떤 절차로 할 것인지’를 정의하는 문제 해결 중심의 언어 ∙ 비 절차적 언어(Non-ProceduralLanguage):4세대 언어로,‘무엇을 할 것인 지’와 ‘결과가 무엇인지’만을 정의하는 것

 

3. 언어 번역 프로그램

1) 용어

∙ 목적 프로그램(Object Program) : 컴파일러에 의해 기계어로 번역 된 프로그램

∙ 연계편집(Linker) : 목적 프로그램을 실행 가능한 프로그램으로 만 드는 과정

∙ 로드모듈(Load Module) : 목적 모듈에 번지 등을 지정하여 실행할 수 있는 형태의 프로그램

∙ 적재(Loader) : 프로그램을 실행시키기 위해 주기억 장치에 프로그 램을 적재하는 프로그램

 

3. 언어 번역 프로그램

2) 번역기의 종류

∙ 컴파일러

- 고급언어로 작성된 프로그램을 기계어로 번역하는 프로그램

- 실행시간의 효율성을 강조

- FORTRAN, COBOL, PL/1, PASCAL 등

∙ 인터프리터

- 융통성을 강조한 처리

- 명령 단위 별로 번역 즉시 실행

- 기억 장소가 적게 필요

- Interactive 처리

- BASIC, LISP 등

∙ 어셈블러(Assembler)

- 어셈블리어로 작성된 원시 프로그램을 기계어로 번역하는 프로그램

 

4. 프로그래밍 언어별 특징

1) 저급언어

∙ 기계어

- 2진수만 사용하여 명령어와 데이터를 표현한 기계 중심 언어

- 프로그램의 실행 속도가 빠름 - 프로그램의 유지 보수가 용이

∙ 어셈블리어 - 기계 중심의 언어로 기계어에 1:1 대응되는 언어

- 저급언어로써 기계어에 가장 가까운 언어

 

2) 고급언어

∙ FORTRAN

- 과학기술용

- J.Backus에 의하여 개발되었으며 수학, 과학, 공학 등과 같은 수 리계산 분야에 널리 사용되는 언어

- 번역기를 구현한 최초의 고급언어이며, 컴파일러 방식의 대표적 언어

∙ COBOL

- 사무처리용

- 기계 독립적인 부분과 기계 종속적인 부분을 분리

- 4개의 영역으로 구성(IDENTIFICATION, ENVIRONMENT, DATA, PROCEDURE)

∙ LISP

- 인공지능 분야에 사용되는 언어

- 선언문을 사용하지 않음

∙ SNOBOL4

- 스트림 연산

- 문자열 복사, 치환 등과 같은 문자열의 조작을 편리하게 수행할 수 있도록 여러 가지 기능을 제공

∙ BASIC

- 대화형(회화형)언어

- 명령어의 종류가 적고, 문법이 간단함

∙ C 언어

- 시스템 프로그래밍 언어

- 고급언어와 저급언어 프로그래밍이 가능

- 대표적인 컴파일 언어

- 이식성이 높은 언어

- 구조적 프로그래밍이 가능

 

1) 추상화(Abstraction)의 개념

∙ 정보를 보여주지 않고 숨기는 정보 은닉(Information Hiding) 기법 의 하나로 정보의 구체적인 내용은 자신만이 알고 있으면서 외부에 있는 객체들에게는 정보에 대하여 개념적인 내용만 알려주는 모델 링 기법

∙ 프로그래밍 언어의 가독성과 작성의 용이성, 신뢰성, 기계 독립성, 이해 향상을 위해 활용

2) 추상화의 특징

∙ 자료와 수행될 연산을 함께 정의

∙ 함수를 이용하는 외부 프로그램과 함수 사이에 독립성을 보장

∙ 프로그램 시스템을 “어떻게”라는 측면에서 관찰하기 보다 “무 엇”이라는 블랙박스로 이해하게 함

TOP