새소식

인기 검색어

TL

20/09/02 TL. 컴파일러 Front End - Back End 구성 요소

  • -

오늘 할 일

NLP 실습 강의 코드 분석 -> 4.3

우분투 설치

gcc 조사

강의 수강 -> 기계학습, 컴퓨터 네트워크, 컴퓨터 그래픽스, 컴파일러 개론

 

내일 할 일

NLP 실습 강의 코드 분석

gcc 설치 + 과제 제출

강의 수강 -> 컴파일러 개론, 선형대수, 컴퓨터 그래픽스

 

매일 할 일

매일 데이터 수집

매일 태깅

태깅 피드백

매일 독서 - 더블린 사람들

매일 영단어


어셈블리어 : 기호를 기계어로 전환하는 번역 sw
ex) add -> 0010
그러나, cpu를 바꾸면 다시 짜야 함.

고급언어는 기계마다 다르지 않고, 영어와 비슷. 컴파일러라는 번역 sw를 이용해 기계어를 생성.
고급 언어 -> 컴파일러 -> 기계어

컴파일러 : 한 언어로 쓰여진 프로그램을 다른 언어로 된 의미가 같은 프로그램으로 번역해주는 프로그램.
source program -> compiler -> target program
즉, 꼭 기계어로만 번역되는 건 아니다.

인터프리터 : 한 줄씩 읽어서 실행
컴파일러 : 다 외워서 실행

컴파일러 기술 응용
-컴파일러, IDE, find-bug, 품질검사, 바이너리 분석, 디컴파일러, 최적화 병렬화



프로그램 처리 과정

preprocessing (ex. #include 등 제거해서 순수 c를 생성) -> compiler가 source를 assembly language로 전환.

컴파일러 각 단계
Front End(전반부)
어휘분석, 구문분석, 의미분석, 중간코드 생성
Back End(후반부)
코드최적화, 코드 생성

Lexical analysis 어휘 분석
-source program을 읽어서 문법의 최소 단위인 token을 생성.
token : 키워드, 연산자, 식별자, 상수 ...

Syntax analysis 구문 분석
-Token을 읽어 오류를 검색하고 올바른 문장에 대한 구문구조를 만든다. -> 트리 형태로.
ex.
A := B + 3;
:=
        A         +
               B      3

Semantic analysis 의미 분석
-Type checking 형 검사
-각 연산자가 원시 언어의 정의에 맞는 피연산자를 가지는가를 검사

Intermediate code generation 중간 코드 생성
-구문구조를 이용하여 코드 생성 또는 문법 규칙에 의해 생성
ex. A := B + 3
load  1  2
loc    3
add
str    1  1

Code optimization 코드 최적화
-코드 분석 후 시간, 공간 등 최적화
-선택적 단계(그러나 공간적, 시간적 효율화를 위해 필수적이라고 할 수도)

Code generation 코드 생성
-목적 코드 생성
-assemble lang, machine code


gcc 컴파일러 : GNU Compiler Collection의 줄임말.

dany-it.tistory.com/209

 

리눅스 gcc 컴파일러란?

이번 포스팅은 리눅스 gcc 컴파일러에 대해 하겠습니다. gcc란 GNU 컴파일러 모음(GNU Compiler Collection, 줄여서 GCC)는 GNU 프로젝트의 일환으로 개발되어 널리 쓰이고 있는 컴파일러입니다. 많은 리눅��

dany-it.tistory.com


 

'TL' 카테고리의 다른 글

20/09/05 TL. 선형대수학 입문  (2) 2020.09.05
20/09/03 TL. 컴퓨터 그래픽스 기초  (0) 2020.09.03
20/09/01 TL.  (0) 2020.09.01
20/08/30 TL. GloVe, LSTM  (0) 2020.08.30
20/08/29 TL.  (0) 2020.08.29
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.