컴공

C언어 1주차 1차시 ① 프로그래밍 언어

아임지니어스 2022. 1. 11. 15:47

■ 용어

 

-프로그래밍 언어 : 프로그램을 만들기 위해 사용하는 언어

-프로그래밍 :  프로그램을 만드는 작업 (코딩)

-프로그래머 : 프로그램을 만드는 사람

-프로그램 : 특정한 작업을 수행하도록 설계된 명령어들의 리스트

 

■ 컴퓨터의 개요

 

컴퓨터

-데이터를 입력하고 처리하고 필요에 따라 저장하고 결과를 출력해주는 전자장치

-사람의 지시에 따라 자동적으로 처리해 주는 전자 장치

-명령어들의 리스트에 따라 데이터를 처리하는 기계

-모든 정보를 0, 1로 코드화 시켜 연산 처리함

-하드웨어 HW와 소프트웨어 SW로 구성 되어 있다.

*HW : 기계적인 장치, 만질 수 있음 SW : 하드웨어의 동작을 제어하고 지시하는 모든 종류의 프로그램

 

처리순서

1. Input (입력) 

2. Process (처리) -연산, 제어

3. Storage (저장)

4.Output (출력)

 

■ 프로그램의 역사

 

해석 기관

-프로그래밍이 가능한 최초의 기계

-챨스 배비지가 발명 (영국의 수학자)

-수천 개의 기어ㆍ바퀴ㆍ축ㆍ레버 등이 증기로 작동한다.

 

에이다 러브레이스 

-최초의 프로그래머

-대문호 바이런의 친 딸

-해석 기관을 위한 프로그램을 개발

-핵심적인 컴퓨터 프로그래밍 기본 원리를 고안 (서브루틴ㆍ루프ㆍ점프 등)

 

ENIAC의 프로그램

-초기 컴퓨터 프로그램

-스위치에 의하여 기억되었고, 프로그램을 변경할 때마다 그 많은 스위치들을 처음부터 다시 연결해야 함

 

프로그램 내장 방식

-1945년 폰 노이만 제안

-컴퓨터에 기억장치를 설치하고, 프로그램과 데이터를 함께 기억장치에 저장했다가

프로그램과 데이터를 프로그램에 포함된 명령에 따라 자동으로 작업을 처리하는 방식

-주기억장치에서 명령어들을 순차적으로 가져와서 실행

 

■ 프로그램의 역사2

 

최초의 실용적인 프로그램 내장 방식의 컴퓨터

-에드박(EDVAC)

-1948

-최초의 이진수를 사용한 프로그램 내장 컴퓨터

-2진수로 되어 있는 데이터만 처리 가능

 

■ 프로그래밍 언어의 분류

 

하드웨어 기계어 어셈블리 언어 고급언어

 

기계어

-특정 컴퓨터의 명령어를 이진수로 표시한 것

-0과1로 이루어진 언어

-컴퓨터가 이해할 수 있는 언어

-매우 어렵고 복잡함 (00001111 00001100 00001110 00000111)

-하드웨어에 종속

 

어셈블리어 

-0, 1 대신 ADD, MOV 등의 명령 기호로 기술

-니모닉 기호

-기계어보다는 더 높은 수준에서 프로그램을 작성하는 것이 가능

-기호와 CPU의 명령어가 일대일 대응

*어셈블러 : 기호를 이진수로 변환하는 프로그램 즉, 어셈블리어를 기계어로 변환함

 

고급언어

-특정한 컴퓨터의 구조나 프로세서에 무관하게 독립적으로 프로그램을 작성할 수 있는 언어

-C, C++, JAVA, FORTRAN, PASCAL

 

인터프린터 언어 (고급언어, 번역기)

-인터프리터에 의해 번역 및 실행되는 프로그래밍 언어

-자바스크립트, HTML, Python 등

-별도의 컴파일 시간 없음, 프로그램 수정이 간단함

-크기가 큰 소스 코드의 경우 컴파일 시간이 오래걸릴 수 있는데 인터프리터 언어의 경우엔 바로 실행이 가능함

 

컴파일 언어 (고급언어, 번역기)

-컴파일러에 의해 번역되는 프로그래밍 언어

-C, C++, JAVA, C#

-컴파일된 프로그램의 경우 일반적으로 인터프리터를 이용해 실행시키는 것보다 훨씬 빠르게 동작한다

 

인터프리터

-해석기

-번역과 실행이 동시에 이루어짐

-고급 언어 문장을 한 단계씩 번역하여 바로 실행해주는 프로그램

-별도의 실행 파일이 존재하지 않음

 

컴파일러

-번역기

-고급 언어 문장을 기계어로 변환하는 프로그램

-소스 프로그램을 목적 프로그램으로 변환하는 프로그램

 

프로그래밍 순서

 

(에디터)  (컴파일러)           (링커)                 (로더)

소스파일.C 목적파일.obj    실행파일.exe →