프로그래밍 언어의 개념
✔️ 자연어
- 사람들이 일상적으로 사용하는 언어(영어, 한국어 등)
- 앞뒤 문맥, 상황, 경험을 토대로 의미를 이해
- 모호성과 부정확성 때문에 컴퓨터에게 명령전달이 어려움
✔️ 기계어
- 컴퓨터가 별다른 해석 없이 읽을 수 있는 언어
- 명확한 의미와 정확한 문법으로 구성
- 0과 1만 사용하여 구성하기 때문에 학습이 아주 어려움
✔️ 프로그래밍 언어
프로그래밍 언어 : 하드웨어가 명령을 수행하기 위한 지침(표기법, 문법, 구문)
- 문법 : 정확한 형태의 구문
- 코드 : 정확한 의미 체계
- 하드웨어 : 컴퓨터를 구성하는 물리적인 기계장치
- 소프트웨어 : 하드웨어를 효율적으로 운영하기 위해 개발되는 프로그램의 총칭
- 하드웨어를 제어하기 위해 규칙을 정하고 지시를 내림
- 프로그래밍 : 소프트웨어(프로그램)를 제작하는 절차
- 코딩 : 코드를 통해 프로그램을 작성하는 일
저급 언어와 고급 언어
✔️ 저급 언어(Low Level Language)
- 컴퓨터가 이해하기 쉽게 작성된 프로그래밍 언어
- 실행 속도가 매우 빠르지만 배우기가 어렵고, 호환성이 떨어짐
- 기계어, 어셈블리어 등이 있으나, 특수한 경우가 아니면 사용하지 않는다.
✔️ 고급언어(High Level Language)
- 사람이 이해하기 쉽게 작성된 프로그래밍 언어
- 배우기가 쉽고, 호환성이 높지만 기계어로 번역이 필요함
- C, Java, Python 등
언어 번역 프로그램
✔️ 원시 프로그램과 목적 프로그램
원시 프로그램 : 사용자(프로그래머)가 작성한 프로그램
- 고급 프로그래밍 언어로 작성된 프로그램 파일
목적 프로그램 : 원시 프로그램이 기계어로 번역된 프로그램
- 번역을 위한 별도의 프로그램이 필요
✔️ 컴파일러
정의 : 고급언어로 작성된 원시 프로그램을 목적 프로그램으로 번역해주는 프로그램
- 프로그램 실행에 필요한 정보가 전부 번역
- 번역속도는 비교적 느리지만, 실행 속도는 빠르다.
- 대표적으로 C, C++ 등의 언어가 컴파일러 방식으로 번역됨
링커 : 하나 이상의 목적 프로그램과 라이브러리를 단일 실행 파일로 병합 해주는 프로그램
로더 : 프로그램을 주기억 장치에 적재하여 실행 해주는 운영체제의 일부분
할당 - 연결 - 재배치 - 적재 순으로 진행
✔️ 인터프리터
고급언어로 작성된 원시 프로그램을 목적 프로그램으로 번역하지 않고 즉시 결과를 출력해주는 프로그램
- 전체를 번역하지 않고, 한번에 한 줄씩 번역하여 실행하는 방식
- 번역속도는 빠르지만, 실행 속도는 비교적 느리다.
- 대표적으로 Basic, Python 등의 언어가 인터프리터 방식으로 번역됨
✔️ 어셈블러
정의 : 저급 언어인 어셈블리어로 작성된 원시 프로그램을 목적 프로그램으로 번역해주는 프로그램
어셈블리어 : 명령을 연상할 수 있는 연상 기호와 기계어를 1:1로 대응한 프로그래밍 언어
- 일반적으로 하드웨어 제어에 사용
✔️ 프로그래밍 언어의 언어별 특성
C
- 1972년에 개발된 언어로, UNIX 운영체제 구현에 사용되는 언어
- 문법의 간결성, 효율적 실행, 효과적인 포인터 타입 제공이라는 특징으로 인해 가장 많이 사용되는 언어
C++
- C언어에 객체지향 기술을 더한 프로그래밍 언어
- C언어에 대해 상위 호환성을 갖는다.
- 객체지향을 염두에 두고 만들어진 언어가 아닌 C언어에 객체지향 기술을 더했기 때문에 C++의 표준 규격은 몹시 복잡한 편
Java
- 객체지향 기술을 염두에 두고 만들어진 프로그래밍 언어
- Java 언어는 컴파일을 거쳐야 한다.
- 컴파일을 통해 생성된 Class 파일을 가상 머신을 통해 실해
- C++에 비해 단순하고 분산 환경 및 보안성을 지원
JavaScript
- 1995년에 개발된 객체지향 스크립트 언어로 웹 페이지 동작을 구현
- 빠른 시간에 코드를 완성할 수 있고 확장성이 좋으며 배우기 쉽다
- 보안이나 성능이 다른 언어에 비하여 부족함
Python
- 배우기 쉽고 이식성이 좋은 언어
- 다양한 함수들도 많이 제공되어 스타트업과 글로벌 기업에서도 많이 사용
- 인터프리터 언어이면서 객체지향 언어, 스크립트 언어
PHP
- HTML에 포함되어 동작하는 서버측 스크립트 언어
- C언어, Java와 유사한 문법을 사용
- 객체지향 프로그래밍을 지원
- 많은 오픈소스 프레임워크와 라이브러리를 사용할 수 있다.
- 비교적 보안에 취약한 부분이 있음
'정보처리기사' 카테고리의 다른 글
C언어 : 데이터가공 및 입/출력 (0) | 2022.04.15 |
---|---|
프로그래밍 기본 개념 (0) | 2022.04.14 |
SQL 응용 (0) | 2022.04.13 |
논리 데이터 모델을 물리 데이터 모델로 변환 (0) | 2022.04.12 |
물리 데이터베이스 설계서 작성 (0) | 2022.04.12 |