1. 프로그래밍의 이해 #
1-1. 프로그래밍의 일반 #
절차적 프로그래밍
- 컴퓨터에 저장된 명령어들이 순차적으로 실행되는 프로그래밍 방식
종류 설명 C - UNIX에서 사용하기 위해 개발한 언어
- 모든 컴퓨터 시스템에서 사용 가능
- 시스템 프로그래밍에 가장 적합한 언어코볼 - 사무용으로 설계된 언어
- 2002년부턴 객체지향 언어베이직 - 교육용으로 개발된 언어의 문법이 쉬운 프로그래밍 언어
- 서로 다른 종류 사이의 소스 코드는 호환되지 않음포트란 - 과학계산에서 필수적인 벡터, 행렬 계산 등이 내장된 과학 기술 전문 언어
객체지향 프로그래밍
- OOP는 객체 간의 메시지 통신을 이용해 프로그래밍하는 방식
- OOP는 클래스와 객체를 통해 재사용성을 높인 방식
- C++, C#, Java
함수형 프로그래밍
- 프로그램을 기억장소의 상태변화 및 이에 대한 조작으로 기술하는 것이 아닌, 입력과 출력의 함수만 사용해 프로그래밍하는 방식
논리형 프로그래밍
- 논리 문장을 이용해 프로그램을 표현하고 계산을 수행하는 개념에 기반한 프로그래밍
프로그램 분류 #
응용 프로그램
- 어떤 문제를 해결하거나 자료처리를 위해 고급 언어등을 이용해 사용자가 직접 작성한 프로그램
- word processor, db 등
시스템 프로그램
- 응용 프로그램을 실행하기 위한 플랫폼을 제공하고 컴퓨터 하드웨어를 동작, 접근할 수 있도록 설계된 프로그램
종류 설명 OS 사용자가 hw를 쉽게 사용할 수 있도록 interface 제공하는 sw Editor edit txt Loader 실행 파일을 읽고 main mem에 저장하는 program Linker 목적 파일들을 합쳐서 하나의 실행 파일을 만드는 program Debugger 사용자가 작성한 프로그램 오류를 검토 및 수정할 수 있는 program 언어 번역 프로그램 원시 프로그램을 목적 프로그램으로 변환
Loader란? 적할 재연(적재 / 할당 / 재배치 / 연결)
기능 설명 적재 - 실제 프로그램과 데이터를 주기억장소에 적재
- 적재할 모듈을 주기억장치로 읽어들임할당 - 목적 프로그램이 적재될 주기억장소 내의 공간 확보 재배치 - 목적 프로그램을 실제 주기억장소에 맞춰 재배치
- 상대 주소들을 수정해 절대주소로 변경연결 - 필요한 경우 여러 프로그램들 링크 작업
- 외부기호 참조 시, 주소값들 연결로더 종류
- 링킹 로더
- 재배치 로더
- 절대 로더
- 컴파일 즉시 로더
- 부트스트래핑 로더
프로그래밍 작성 절차
1-2.객체지향 일반 #
객체지향은 실세계의 개체를 속성 연산이 결합한 형태의 객체로 표현하는 기법