반응형
● 기본 프로그램
1. 프로그램(program)의 구분
- 소스 프로그램(Source Program): 소스 프로그램은 개발자가 작성한 프로그램 코드를 의미합니다. 소스 코드는 일반적으로 사람이 이해할 수 있는 고급언어로 작성됩니다. 예를 들어, C, Java, Python 등의 프로그래밍 언어로 작성된 코드가 소스 프로그램입니다.
- 목적 프로그램(Object Program): 목적 프로그램은 소스 프로그램을 컴파일러나 어셈블러 등의 프로그램을 사용하여 컴퓨터가 이해할 수 있는 기계어로 번역한 결과물입니다. 목적 프로그램은 일반적으로 실행 가능한 프로그램이 아니며, 추가적인 링킹(linking) 과정을 거쳐 실행 가능한 실행 파일이 생성됩니다.
- 실행 프로그램(Executable Program): 실행 프로그램은 목적 프로그램이 링킹된 후 생성된 실행 파일로, 컴퓨터에서 직접 실행될 수 있는 프로그램을 의미합니다. 실행 프로그램은 일반적으로 .exe(윈도우즈), .app(Mac OS), .sh(Linux/Unix) 등의 확장자를 가지며, 컴퓨터의 운영체제와 호환됩니다.
따라서, 소스 프로그램은 개발자가 작성한 코드, 목적 프로그램은 컴퓨터가 이해할 수 있는 기계어로 번역된 코드, 실행 프로그램은 목적 프로그램이 링킹되어 컴퓨터에서 직접 실행 가능한 프로그램을 의미합니다.
소스 프로그램 (Source Program) |
- 프로그래밍 언어를 이용하여 작성한 원시 프로그램 - 알파벳, 숫자, 기호를 이용하여 기록하므로 인간이 이해할 수 있는 형태 |
목적 프로그램 (Object Program) |
- 소스 프로그램을 컴파일러로 번역한 상태의 프로그램 - 0과 1로 구성된 기계어로 기록되어 인간이 이해하기 어려움 - 실행에 필요한 여러 가지 데이터가 없어 실행 불가능 |
실행 프로그램 (Object Program) |
- 목적 프로그램을 연계 편집에 의해 재편집한 상태의 프로그램 - 기계어이면서 실행에 필요한 모든 정보를 담고 있어 실행 가능 |
2. 프로그램의 순서
● 순서도
1, 순서도의 개념 및 종류
프로그램의 흐름을 기호화, 프로그램의 흐름 분석과 논리적인 오류 파악이 쉬움, 원시 프로그램의 작성이 용이하여 코딩작업이 간편
시스템 순서도 | - 시스템 전반에 걸친 내용 (= 처리 순서도) |
프로그램 순서도 | - 프로그래밍 이론에 맞게 작성 |
개요 순서도 | - 프로그램의 대략적인 흐름을 한눈에 파악할 수 있도록 작성 |
상세 순서도 | - 일반 순서도를 세분하여 자세히 풀어 놓은 것, 코딩의 기본 자료 |
2. 순서도 기호
● 프로그래밍 언어
1. 프로그래밍 언어
저급 언어 |
기계어 | - 컴퓨터가 직접 이해 가능한 2진수로 구성, 처리속도가 매우 빠름 |
어셈블리어 | - 기계어 명령어 하나에 어셈블리 기호 명령어 하나씩 대응 | |
고급 언어 |
BASIC | - 교육용, 대표적 인터프리터 방식의 언어, 시분할 시스템 지원 |
FORTRAN | - 과학기술계산용 언어, 복잡한 계산에 적합 | |
COBOL | - 사무처리용 언어, 다량의 데이터 처리에 적합 | |
ALGOL | - 알고리즘을 기술하기 위한 언어 | |
RPG | - 사무용, 간단한 파일 입.출력 처리에 적합 | |
PL/1 | - COBOL과 FORTRAN의 장점을 모은 이상적 언어 | |
PASCAL | - 교육용으로 제작된 알고리즘 형식의 언어 | |
C | - B언어에서 발전, UNIX 시스템 구축 목적, HW 제어와 이식성 우수 - 컴파일러나 SW 개발용 도구로 사용, 미국 벨연구소에서 개발한 시스템 언어 |
|
JAVA | - 객체 지향적 프로그래밍 언어, 웹 앱 등 가장 많이 사용, 사용 용이 | |
Python | - 플랫폼에 독립적, 인터프리터식, 객체지향적, 동적 타이핑 대화형 언어 | |
R | - 통계 계산과 그래픽을 위한 프로그래밍 언어, AI 데이터 처리에 적합 |
2. 언어 번역기의 종류
어셈블 (Assemble) | - 어셈블리어 |
컴파일 (Compile) | - FORTRAN, COBOL, C, ALGOL, PASCAL 등 |
인터프리트 (Interpret) | - BASIC, PROLOG, LISP 등 - 작성된 원시 프로그램을 1줄 씩 읽어 번역 및 실행 (대화형) - 번역으로 생성된 중간 코드는 실행 후 삭제되어 목적 프로그램이 없음 |
3. 프로그래밍 관련 기법
구조적 프로그래밍 | - 작은 단위의 모듈을 작성하는데 매우 효과적 - 전반적인 시스템 설계 및 분석에는 부적합 |
라이브러리 (Library) | - 프로그램 작성할 때 이미 만들어진 프로그램이나 루틴을 불러 자주 사용 |
매크로 (Macro) | - 프로그램 내에서 반복적으로 사용되는 별도 정의된 명령어의 집합 (백업시에 많이 사용) |
세그먼테이션 (Segmentation) |
- 가장 메모리장치에서 주기억장치보다 큰 프로그램이나 데이터 처리의 기법 - 명령어를 갖은 코드 세그먼트, 자료를 갖은 스택, 데이터, 엑스트라 세그먼트 등 (매크로와 비슷한 기능을 가지고 있음) |
가상메모리 (Virtual M) | - 주기억장치 보다 큰 가상공간을 사용할 수 있는 기법 (페이징, 세그먼테이션) |
루핑 (Looping) | - 프로그램에서 일정한 횟수나 조건을 만족할 때까지 반복 수행 |
서브루틴 (Sub-Routine) | - 프로그램은 여러 개의 루틴으로 구성 - 자주 수행되는 작업을 서브루틴으로 독립, - 메인 루틴이나 다른 서브루틴에서 필요 시 호출 |
728x90
'IT의 모든 것 > IT 상식' 카테고리의 다른 글
스탯카운터로 점유율 확인하기 (0) | 2023.03.24 |
---|---|
인공지능은 무엇인가? (2) | 2023.03.22 |
메타버스와 융복합 시대의 시작!! (0) | 2023.03.19 |
4차 산업혁명 시대의 변화 (0) | 2023.03.16 |
2023년 IT 트렌드는 무엇이 있을까? (0) | 2023.03.08 |