jiho_bae
Go devlog
jiho_bae
전체 방문자
오늘
어제
  • 분류 전체보기 (158)
    • JavaScript (38)
      • theory (34)
      • vanilla (4)
    • HTML & CSS (2)
    • Browser (3)
    • CS (6)
      • linux (1)
      • shell (2)
      • compiler (2)
    • DS & Algorithm (87)
      • theory (5)
      • basic (7)
      • programmers (30)
      • baekjoon (45)
    • Design Pattern (2)
    • Error (4)
    • Git & Github (4)
    • Tools (1)
    • 부트캠프 (4)
    • Small Tips (2)
    • Java (3)
    • test (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 억억단을 외우자 javascript
  • JavaScript
  • 리코쳇 로봇 javascript
  • 백준 17406 nodeJS
  • 백준 자바스크립트 입력 템플릿
  • 자바스크립트 배열의 특수함
  • 자바스크립트 비동기 마이크로 태스크 큐와 렌더링 과정
  • 자바스크립트 모듈 시스템
  • 깃 이전 커밋에서 새 브랜치 만들기
  • 병합정렬 자바스크립트
  • 1753 최단경로 javascript
  • 리액트 프로젝트 디버깅하기
  • fetch 취소하기
  • safari invalid date error
  • 자바스크립트 커링
  • 자바스크립트 채팅방 스크롤
  • 가사 검색 자바스크립트
  • safari Date format NaN
  • 자바스크립트 sort는 왜 그모양일까
  • 외벽 점검 javascript
  • 13460 javascript nodejs
  • 25632 소수 부르기 게임
  • 프로그래머스 숫자카드나누기 javascript
  • 덧칠하기 javascript
  • 대충만든자판 javascript
  • 퀵정렬 자바스크립트
  • 카카오 코딩테스트 양궁대회 nodeJS
  • 자바스크립트 이벤트 위임
  • javascript use strict
  • 계수정렬 자바스크립트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
jiho_bae

Go devlog

[컴파일러] 컴파일러란?
CS/compiler

[컴파일러] 컴파일러란?

2021. 8. 1. 00:32

컴파일러

컴파일러는 명령어 번역 프로그램이다.

 

컴파일러는 소스 코드 혹은 원시 코드를 목적 코드로 옮겨주는 역할을 한다.

 

쉽게 설명하면 여기서 소스 코드는 사람이 작성한 코드이며,
목적 코드는 기계어(컴퓨터가 이해할 수 있는 언어)라고 생각할 수 있겠다.

 

물론, 목적 코드가 문서 파일이나, 그림 파일 등이 될 수도 있다.


컴파일러가 왜 필요한가?

우리가 사용하는 C, C++, 파이썬 자바스크립트 등은 "사람이 이해하기 쉬운 형태"의 언어이다.

우리가 열심히 작성한 코드를 사실 컴퓨터는 이해하지 못한다.

여기서 컴파일러는 우리가 작성한 코드를 일정한 규칙을 가지고 컴퓨터가 이해할 수 있도록 바꿔준다.

 

즉, 우리와 미국인 사이에 국어와 영어를 모두 아는 컴파일러라는 통역사가 의사소통을 돕는 것이다.

이 컴파일러 덕분에 우리는 편안하게 영어(편안한가?)로 코드를 작성할 수 있다.


컴파일 언어?

컴파일 언어, 인터프리터 언어라는 용어를 접해본 적이 있을 것이다.

 

말 그대로 컴파일 언어는 컴파일러를 사용하겠다는 것이고,

인터프리터 언어는 인터프리터를 사용하겠구나 짐작할 수 있다.

 

간단한게 인터프리터를 소개하자면,
소스코드를 기계어로 변환하지 않고, 한줄 한줄 해석해서 바로 명령어를 실행하도록 하려는 녀석이다.
명확하게 말하자면, 컴파일 과정이 아예 없는 것은 아니지만 정의는 이러하다.

 

아무튼 컴파일 언어로 돌아오면 대표적으로 C언어가 있다.

 

 

대학에서 교양 수업으로 처음 들었던 프로그래밍 기초 수업에서, Visual Studio + C언어를 사용했었는데
코드를 열심히 작성하고 Run을 하면 이상한 파일들이 마구 생겼던 기억이 있다.

 

알고보니 이 "이상한 파일"들이 컴파일러로 빌드 과정을 거친 결과물이었다.

 

여기서 빌드는, 소스코드 파일을 실행파일로 생성하는 과정인데,
즉 고급언어를 변환 과정을 거쳐 기계어로 만들어, 실행파일을 생성하는 과정이다.

 

컴파일러에 의해 소스코드를 변환하면, 런타임 상황에서는 빠르게 실행을 할 수 있다.

이러한 컴파일 언어에는 C, C++, C#, Java 등이 있다.


이어지는 글

 

[컴파일러] 토크나이저, 렉서, 파서 (Tokenizer, Lexer, Parser)

컴파일러 [컴파일러] 컴파일러란? 컴파일러 컴파일러는 명령어 번역 프로그램이다. 컴파일러는 소스 코드 혹은 원시 코드를 목적 코드로 옮겨주는 역할을 한다. 쉽게 설명하면 여기서 소스 코드

gobae.tistory.com

 

 


참고한 사이트

https://ko.wikipedia.org/wiki/컴파일러
https://rbqja.tistory.com/14
https://jhkang-tech.tistory.com/136

저작자표시 (새창열림)

'CS > compiler' 카테고리의 다른 글

[컴파일러] 토크나이저, 렉서, 파서 (Tokenizer, Lexer, Parser)  (3) 2021.08.01
    'CS/compiler' 카테고리의 다른 글
    • [컴파일러] 토크나이저, 렉서, 파서 (Tokenizer, Lexer, Parser)
    jiho_bae
    jiho_bae
    하루에 한 걸음씩

    티스토리툴바