* 프로그래밍 언어의 발전 과정
- 1960년 이전 : ASSEMBLY, FORTRAN, LISP
- 1960년대 : COBOL, PL/I, BASIC
- 1970년대 : PASCAL, C, SMALLTALK, PROLOG
- 1980년대 : ADA, C++, PERL, PYTHON
- 1990년대 : RUBY, JAVA, JAVASCRIPT, PHP, VISUAL BASIC
- 2000년대 이후 : C#, SCALA, GO, CLOJURE, CEYLON, KOTLIN, DART 등
*프로그래밍 언어 유형
1) 개발 편의성
-저급 언어 : 기계가 이해할 수 있도록 만든 언어
추상화 수준이 낮고 프로그램 작성이 어려움
저급 언어에 능숙한 개발자는 매우 효율적으로 프로그램을 작성할 수 있음
기계어, 어셈블리어
-고급 언어 : 개발자가 소스코드를 작성할 때 쉽게 이해할 수 있도록 작성된 언어
번역하는 과정이 필요하며, 컴파일러 또는 인터프리터로 이용
C, C++, C#, JAVA, PYTHON
2) 구현방식
- 절차지향 언어 : 기계가 이해할 수 있도록 만들어진 언어/ 추상화 수준이 낮고 프로그래밍이 어려움
- 객체지향 언어 : 개발자가 소스코드를 작성할 때 쉽게 이해할 수 있도록 작성된 언어/ 번역 필요, 컴파일러와 인터프리터 사용
- 함수형 언어 : 수학적 수식과 같은 함수들로 프로그램을 구성하여 호출하는 방식의 언어 / Lisp, Scalar, Clojure, haskell
- 논리형 언어 : 규칙에 대한 활성화 조건이 만족되면 연관된 규칙이 실행하는 구조
이론과 관계 규칙에 의해 원하는 결과를 얻음 PROLOG
3) 실행방식
- 컴파일 방식 : 고급 언어를 기계어로 변환, 실행에 필요한 정보가 컴파일 시간에 계산되어 실행 속도가 높음
C, C++, PASCAL, FORTRAN
- 인터프리터 방식 : 고급언어를 명령어 단위로 하나씩 번역하고 실행, 프로그램 실행 시 계산
JAVASCRIPT, PROLOG, LISP, PYTHON
- 혼합형 : 고급 언어를 컴파일하영 중간 언어로 변환 후 인터프리터에 의해 번역 실행
JAVA
* 절차적 프로그래밍 언어
장점 : 코드의 재사용, 프로그램 흐름 파악, 모듈화 및 구조화
1) 프로시저와 모듈성
크고 복잡한 프로그램을 작성할 때 모듈성은 필요, 모듈성은 프로시저에 어떤 형태의 입출력이 이뤄지는지 명확한 규칙을 정해서 구현
- 매개변수 반환값 : 입력은 주로 인수의 형태로 문법적으로 지정하고, 출력은 결과값으로 지정
- 유효범위 : 프로시저가 모듈성을 잘 지킬 수 있게 해줌. 프로시저가 다른 프로시저의 변수에 접근하거나 그 반대의 경우를 막아줌
서로다른 장소에서 같은 이름의 변수를 사용하여 혼동되는 것을 막아주고, 다른 프로시저의 영역을 침해하는 것을 막음
- 명시적 허가 : 명시적인 허가 없이는 방금전의 자기 자신의 변수에도 접근할 수 없음
- 약 결합 : 변수가 프로그램의 부분들 사이에서 독립적 관계에 있다면 모듈성을 강학함
2) 절차적 프로그래밍 언어 사례
- C : 정규화된 표준 C라이브러리를 이용한 프로그래밍 언어로, 유닉스 시스템의 바탕 프로그램은 모두 C로 작성됨
- 포트린 : 주로 과학적인 계산을 하기 위해 시작된 프로그램 언어
- 알골 : 알고리즘 연구개발에 이용하기 위한 목적으로 만들어진 알골계 언어의 총칭
- 베이직 : 교육용으로 개발되어 언어 문법이 쉬운 절차적 언어
3) 절차적 프로그래밍 언어와 객체지향 프로그래밍 언어의 비교
프로시저 단위가 아닌, 객체 단위로 재사용이 가능한 객체지향 언어의 장점을 부각시키기 위해 자주 비교
- 절차적 프로그래밍
데이터 기능 : 기능과 데이터가 분리
변경 용이성 : 프로그램 변경이 어려움
개발 용이성 : 프로그램의 구성요소가 실세계를 추상화. 프로그램 어려움
재사용 단위 : 프로시저
-객체지향 프로그래밍
데이터 기능 : 하나의 객체에 데이터, 기능 통합
변경 용이성 : 용이함
개발 용이성 : 프로그램 구성 요소가 실세계와 일치
재사용 단위 : 객체
'정보처리기사 실기 > 02. 응용SW엔지니어링' 카테고리의 다른 글
[2020 정보처리기사 실기 - 프로그래밍 언어 활용] 2. 언어 특성 활용하기 - 2 (0) | 2020.03.25 |
---|---|
[2020 정보처리기사 실기 - 프로그래밍 언어 활용] 1. 기본 문법 활용하기 (0) | 2020.03.20 |
[2020 정보처리기사 실기 - 프로그래밍 언어 활용] 데이터 타입 (0) | 2020.03.20 |
[2020 정보처리기사 실기 - 애플리케이션 테스트 관리] 3. 애플리케이션 성능 개선하기 (0) | 2020.03.11 |
[2020 정보처리기사 실기 - 애플리케이션 테스트 관리] 2. 애플리케이션 통합 테스트하기 (0) | 2020.03.10 |