본문 바로가기

[공부]컴파일러의 일반적인 구조 컴파일러의 구조는 크게 전단부와 후단부로 나눌 수 있다 전단부는 소스언어에 관계되 있고 후단부는 전단부에서 생성한 중간 코드를플렛폼에서 돌아갈 수 있게 바꿔주는 역할을 한다.전단부는 각 언어당 하나씩 필요하며, 후단부는 목적 기계당 하나씩 필요하다. 소스 프로그램은 전단부의 어휘분석, 구문분석, 중간 코드 생성의 과정을 가지고 이 중간코드는 후단부에서 최적화와 목적코드 생성을 하여 목적 프로그램을 만들어 낸다 이 모든 과정은 테이블로 관리한다 . 어휘 분석기는 소스프로그램을 받아 일련의 토큰을 내놓는데 일련의 토큰은 키워드, 연산자, 구분자 등이다.예를들어 a = b + 10; 으로 되어있다면, a , = , b , +, 10, ; 총 6개의 토큰으로 분리해 낸다 여기서 =, + , ; 은 특수 형태의 .. 더보기
본 개시판은 개인 공부를 목적으로 하는 개시판입니다. 안녕하세요 sdk입니다. 본 개시판은 저의 개인적인 공부를 기록하고, 메모하는 용도로 사용할 것 입니다. 현제 공부하는 것은 컴파일러구요, 사용 서적은 오세만 저 컴파일러 입문 입니다 제 공부를 목적으로 하는 개시판이고, 강좌를 목적으로 하는 개시판이 아니기 떄문에 중간중간 건너띄기도 하고 들쑥 날쑥 할 수 있다는점 양해 부탁드리구요. 추후 강좌를 쓸수있는 기회가 생기면 올리도록 하겠습니다. 여러분들의 댓글은 큰 힘이됩니다 :) . 더보기
C언어 강좌 10. 반복해서 실행합시다. 반복문 안녕하세요 sdk입니다. 이번에 알려드릴건 C언어의 반복문 입니다. 반복문 하면 무엇이 떠오르시나요? 반복 이라는 단어가 들어갔으니까 어떠한 것을 반복하는데 사용될 것이라고 생각드시나요? 맞습니다. 반복문은 프로그램의 반복 수행을 하기 위한 구문입니다. 아아, 걱정하지 마세요 오늘 배울건 단 5개의 키워드지만 3개는 비슷 비슷 하답니다. 우리가 지금까지 배운거로 Hello World! 를 5번 출력 하려고 하면 어떻게 해야할까요? #include int main() { printf("Hello World!\n"); printf("Hello World!\n"); printf("Hello World!\n"); printf("Hello World!\n"); printf("Hello World!\n"); ret.. 더보기