컴파일러 이론 - 소개 (A)

 

  • 프로그램이 실행 전에, 먼저 컴퓨터에 의해서 실행될 수있는 형태로 번역
  • 컴파일러라고하는 소프트웨어의 번역을 완료

언어 프로세서

  컴파일러

  • 컴파일러는 프로그램이다 소스 프로그램으로 작성 될 수 있으며,이 프로그램은 (A)의 등가로 번역
  • 컴파일러의 중요한 업무 중 하나는 그것을보고하는 것입니다 번역 오류의 과정에있는 소스 코드

  

  대상 프로그램을 실행

  • 목표는 다음 사용자에 의해 호출 될 수있는 실행 가능한 기계어 프로그램이있는 경우, 입력을 처리하고 출력을 생성

   

  통역사

  • 공용 언어 프로세서, 번역의 방법으로 대상 프로그램을 생성하지 않습니다
  • 사용자의 관점에서, 직접 인터프리터 사용자 접속을 제공하기 위해 수행 작업이 지정된 입력 소스 프로그램

    

 

  컴파일러 및 통역 단점

  의 출력에 상기 사용자 입력을 매핑하는 과정에서

  • 그것은 구성 컴파일러 일반적으로 발생하는 기계 언어 객체 프로그램 인터프리터보다 훨씬 더 빨리
  • 오류 진단 효과 인터프리터가 일반적으로 더 나은 컴파일러보다 , 소스 프로그램 문을 하나씩 실행 그것 때문에

  자바 언어 컴파일러와 프로세서는 해석 과정을 결합

  • 제 Java 소스 코드로 컴파일은 호출 (바이트 코드) 바이트 코드 의 중간 표현을
  • 바이트 코드를 얻을에 의해 그리고 가상 머신이 될 해석
  • 장점이되는 바이트 코드에서 컴파일 된 머신에서해석과 다른 시스템상에서 실행
  • 네트워크를 통해  시스템 간의 마이그레이션을 완료 할 수 있습니다

  

  • 다루는 더 빨리 출력 완전한 입력하기 위해, 일부는 호출 에 시간 컴파일러 의 입력 자바 컴파일러 핸들의 중간에 실행하는 순간 먼저 전에 기계 언어로 바이트 코드를 변환하는 프로그램을 실행 한 후, 및

 

  • 소스가 될 수있다 복수의 모듈로 나누어 다른 파일에 저장
  • 하나 개의 작업에 의해 함께 집계 소스는 때때로라고 프리 프로세서 (처리기)  독립적으로 프로그램, 프리 프로세서 (처리기) 에 대한 책임 매크로 회심의 형태로 축약 소스 언어 문장을
  • 전처리 소스 컴파일러 입력으로 전달 된 후에, 컴파일러는 출력으로서 어셈블리 언어 프로그램을 생성 어셈블러 언어 보낸 디버그 출력에 용이 할 수있다
  • 어셈블리 언어 프로그램이 호출되는 어셈블러 (어셈블러)  처리 프로그램 및 컴퓨터 코드를 생성 재배치
  • 대형 프로그램은 종종 부분적으로 컴파일 된 복수로 분할 될 수있다, 재배치 기계 코드 재배치 필요하고 다른 오브젝트 파일 및 라이브러리 파일이 함께 연결되어 실제 시스템에서 실행중인 코드를 형성하기 위해
  • 파일의 코드 를 가리킬 수도 다른 파일과의 위치 링커 (링커) 문제점을 해소 할 수 외부 메모리 어드레스의 문제
  • 로더 (로더) 모든 실행 오브젝트 파일을메모리에

  

추천

출처www.cnblogs.com/YC-L/p/12105231.html