2021. 5. 23. 01:04ㆍ프로그래밍/개인프로젝트
프로그래밍 언어
기계어
트랜지스터는 컴퓨터의 기본 요소이고 전기적 신호를 통해 0과 1을 표현할수있다.
즉, 컴퓨터는 이진수 데이터만 인식할 수 있다.
컴퓨터를 제어하기 위해서는 이진수로 구성된 기계어를 써야한다.
기계어는 컴퓨터가 별다른 해석없이 읽을 수 있는 유일한 언어이고 저급언어중 하나이다.
기계어는 사용하기에 불편한 점이 많았다.
ex) 이진수로만 이루어져 인간이 해석하고 사용하기에 어렵다, 코드길이가 너무 길다.
어셈블리어
또다른 저급언어인 어셈블리어가 있다.
어셈블리어는 0과 1대신에 사람이 읽을 수 있는 의미가 담긴 약어를 사용했고,
이 약어는 기계어와 1:1로 대응되는 언어다.
약어를 컴퓨터가 인식할 수 없기 때문에 어셈블러라는 프로그램을 통해 기계어로 변환을 해야 사용이 가능하다.
기계어에 비해 사용성이 조금 좋아졌긴 하지만 그래도 저급언어는 배우기 어렵고 사용이 까다로우며
유지보수가 힘들다는 단점이 있었다.
이러한 단점을 보완하기 위해 고급언어가 나오게 됐다.
고급언어
고급언어란 보다 사람이 이해하고 작성하기 쉽게 고안된 언어로
저급언어보다 가독성이 좋고 다루기 간단하다는 장점이 있다.
이로인해 생산성증가에 엄청난 발전이 있었다.
고급언어도 컴퓨터가 인식할 수 있는 기계어로 변환해야 사용할 수 있고. 변환프로그램의 작동방식에 따라
크게 컴파일러를 이용 하는 방식과 인터프리터를 이용하는 방식으로 나눌 수 있다.
변환
프로그래밍 언어로 쓰여진 텍스트파일을 소스코드라고 한다.
이 소스코드를 변환하는 방식에 따라 컴파일러를 사용하는 방식과 인터프리터를 사용하는 방식으로 나눌 수 있다.
컴파일러 사용
소스코드를 다른 언어로 바꿔주는 변환프로그램이 '컴파일러'고 변환하는 과정을 '컴파일 한다' 라고 하며
좁은 의미의 컴파일은 고급언어를 저급언어로 바꿔주는것을 말한다.
고급언어 → 저급언어 컴파일
소스코드를 이진숫자 형식의 object code로 출력한다.
장점
1. 프로그램 실행속도가 빠르다는 장점이 있다.
단점
1. 소스코드 전체를 변환하기 때문에 변환속도가 느리다.
2. 변환이 끝난뒤 오류보고서를 생성하기 때문에 오류발생시 다시 컴파일 해야한다.
3. 하나 이상의 object code들을 링크 편집기를 통해 묶어서 파일을 만들기 때문에 더 많은 메모리가 필요하다.
인터프리터
인터프리터 방식은 소스코드의 각 행을 연속적으로 분석하며 실행한다.
수정이 비교적 빈번히 발생하는 용도의 프로그래밍에서 사용된다.
장점
1. 각 행마다 분석하기 때문에 변환시간이 빠르다.
2. 오류발생시 알림이 전송되고 멈추기때문에 수정이 쉽다.
3. 변환 후 바로 실행하기 때문에 용량이 적다는 장점이 있다.
단점
프로그램 실행속도가 느리다는 단점이 있다.
'프로그래밍 > 개인프로젝트' 카테고리의 다른 글
변수의 기본형 데이터 타입 사용시 (효율중시, 성능중시) (0) | 2021.06.22 |
---|---|
(JavaFX) - Event Handler (0) | 2021.06.20 |
Java - public static void의 의미 (0) | 2021.06.19 |
heap & stack (0) | 2021.06.15 |
1. 변수란? (0) | 2021.06.11 |