'프로그래밍1 및 실습' 계절학기 전공기초 내용을 기반으로 작성합니다.
프로그램, 프로그래밍, 프로그래밍 언어
- 프로그램: 컴퓨터를 이용해 문제를 해결할 때 컴퓨터에 내리는 명령어들의 집합
- 프로그래밍: 컴퓨터가 이해할 수 있는 언어로 실행 프로그램을 만드는 것
- 프로그래밍 언어: 컴퓨터를 구동시키는 프로그램을 작성하기 위한 형식 언어
저급 언어와 고급 언어
저급 언어: 하드웨어 지향의 컴퓨터 내부 표현에 가까운 언어. 기계어와 어셈블리어로 구분됨
- 기계어: 2진수 형태의 0과 1로 작성하며 컴퓨터가 직접 이해할 수 있는 언어
- 어셈블리어: 기계어 명령을 간단한 기호로 표현한 언어
고급 언어: 사람이 이해하기 쉬운 일상 언어와 기호를 사용해 프로그램을 작성할 수 있으며, 저급 언어보다 이식성이 높음
- 대표적인 고급 언어: C, C++, 자바, 파이썬, 포트란, 코볼, 파스칼 등
프로그래밍 언어의 번역
고급 프로그래밍 언어의 소스코드를 기계어로 번역하는 것으로, 컴파일러 방식과 인터프리터 방식으로 나뉨
컴파일러와 인터프리터
- 컴파일러: 프로그램 전체 소스코드를 기계어로 한 번에 번역해 실행 파일을 만든 뒤 프로그램을 실행하는 방식으로, C, 자바 등이 컴파일러 방식을 사용함
- 컴파일: 소스 전체를 개체 파일로 번역하는 과정
- 인터프리터: 소스코드를 한 행씩 읽어 가며 번역과 실행을 동시에 수행하는 방식으로, 프로그램이 실행 중일 때 고급 언어로 작성된 소스코드 명령어를 하나씩 번역하는 것
- 컴파일러를 이용한 방식보다 속도가 느리지만, 즉각적인 피드백이 가능
프로그래밍 실행 과정
프로그래밍 언어의 분류
- 절차 지향 언어: 프로그램을 작성할 때 실행 순서를 중심으로 설계하는 프로그램 작성 언어로, C, C++, 포트란, 베이직, 코볼 등이 있음
- 논리형 언어: 논리학의 관계식 형태로 프로램을 기술한 언어로, 프롤로그가 대표적임. 논리식을 바탕으로 객체 간의 관계에 대한 문제를 해결할 때 주로 사용
- 객체 지향 언어: 프로그램을 독립된 단위인 '객체'들의 집합으로 파악하는 언어로, 자바, 파이썬, C++, C#등이 있음
- 함수형 언어: 데이터에 대한 함수 적용을 바탕으로 처리하는 과정을 기술하는 언어로, 대표적인 언어로는 리스프, 스킴 등이 있음
절차지향 언어와 객체지향 언어의 차이
- 절차 지향 언어: 데이터와 기능을 별도로 관리해 기능을 호출한 뒤 데이터에 접근해 일을 처리 -> C, C++ 공통
- 객체 지향 언어: 기능과 데이터를 하나로 묶어 캡슐화한 후 메세지를 전달해 일을 처리 -> C++
C언어 특징
- 절차 지향 언어: 함수 중심으로 구현되는 절차지향 언어
- 간결하고 효율적인 언어: 다양한 연산과 이미 개발된 다양한 시스템 라이브러리를 제공(비트연산, 증감연산, 축약대입연산 등)
- 이식성이 좋은 언어: 다양한 CPU와 플랫폼의 컴파일러를 지원
'개발 > C, C++' 카테고리의 다른 글
[C] malloc() calloc() 차이점, 동적메모리할당 (0) | 2024.11.26 |
---|---|
[C] C언어에서 힙 메모리와 스택 메모리 (0) | 2024.11.25 |
[ C++ ] C++의 단짝 STL 🧏🏻♀️ (0) | 2024.01.13 |
[C++] C++ 입출력 속도를 더 빠르게 처리하는 방법 (0) | 2023.07.08 |