번역자(컴퓨팅)
Translator (computing)프로그램 실행 |
---|
일반적인 개념 |
코드의 종류 |
컴파일 전략 |
주목할 만한 런타임 |
주목할 만한 컴파일러 및 툴 체인 |
번역기 또는 프로그래밍 언어 프로세서는 하나의 컴퓨터 언어에서 다른 [1][2]언어로 코드를 변환하는 모든 것을 나타낼 수 있는 총칭입니다.고급 언어로 작성된 프로그램을 소스 프로그램이라고 합니다.여기에는 C++나 Java와 같은 상위 레벨과 인간이 읽을 수 있는 컴퓨터 언어, Java 바이트 코드와 같은 중간 레벨의 언어, 어셈블리 언어나 머신 코드와 같은 하위 레벨의 언어, 다른 [1]컴퓨팅 플랫폼 상의 유사한 수준의 언어 간의 번역이 포함됩니다.
이 용어는 같은 프로그램의 소프트웨어 구현과 하드웨어 구현(ASICs 마이크로칩) 간의 변환자 및 마이크로칩의 소프트웨어 설명에서 [citation needed]마이크로칩을 구축하기 위해 필요한 논리 게이트에 이르기까지도 사용됩니다.
다양한 유형의 번역자
일반적으로 다음과 같은 3가지 유형의 번역기가 있습니다.
컴파일러
컴파일러는 고급 프로그래밍 언어를 하위 프로그래밍 언어로 변환하는 데 사용되는 번역기입니다.하나의 세션에서 전체 프로그램을 변환하고 변환 후 검출된 오류를 보고합니다.컴파일러는 높은 수준의 코드를 낮은 수준의 코드로 한꺼번에 변환한 후 메모리에 저장하기 때문에 작업에 시간이 걸립니다.컴파일러는 프로세서와 플랫폼에 의존합니다.특수 컴파일러, 크로스 컴파일러 및 소스 투 소스 [3][1][4]컴파일러와 같은 대체 이름으로 지정되었습니다.
통역사
인터프리터는 높은 수준의 프로그래밍 언어를 낮은 수준의 프로그래밍 언어로 변환하는 데 사용되는 번역기이기 때문에 컴파일러와 유사합니다.차이점은 프로그램을 한 번에 한 줄씩 코드 변환하고 변환하는 동시에 오류가 감지되면 보고한다는 것입니다.인터프리터는 코드를 읽는 즉시 코드를 실행하므로 컴파일러보다 빠릅니다.한 번에 한 줄의 코드를 실행할 수 있기 때문에 소프트웨어 개발을 위한 디버깅 도구로 자주 사용됩니다.인터프리터는 프로세서에 의존하지 않기 때문에 컴파일러보다 휴대성이 뛰어나 서로 다른 하드웨어 아키텍처 [3][1][4]간에 작업할 수 있습니다.
어셈블러
어셈블러는 어셈블리 언어를 기계어로 변환하는 데 사용되는 번역기입니다.어셈블리 언어용 컴파일러와 같은 기능을 가지지만 인터프리터처럼 작동합니다.어셈블리 언어는 낮은 수준의 프로그래밍 언어이기 때문에 이해하기 어렵습니다.어셈블러는 어셈블리 언어 등의 저레벨 언어를 기계 [3][1]코드 등의 저레벨 언어로 번역합니다.
「 」를 참조해 주세요.
- 바이너리 변환기(바이너리 투 바이너리, 통상은 코드)
- 어셈블리 언어 번역기(저레벨 소스 투 소스, 코드)
- Source-to-Source 번역기(고급 Source-to-Source, 코드)
- Rewriter(소스 간, 일반적으로 코드)
- 파일 변환기(바이너리에서 바이너리로, 일반적으로 데이터)
- 트랜스코더(이진에서 바이너리로, 데이터)
레퍼런스
- ^ a b c d e Thornton, Scott (2017-02-17). "What are compilers, translators, interpreters, and assemblers?". MicrocontrollerTips. Archived from the original on 2019-07-19. Retrieved 2020-02-02.
- ^ "Translators And Utilities For Program Development". Software Handbook (PDF). Intel Corporation. 1984 [1983]. p. 3-1. 230786-001. Archived (PDF) from the original on 2020-01-29. Retrieved 2020-01-29.
- ^ a b c "Translators: Purpose, Types, Examples & Advantages". Teach Computer Science. 2018-01-11. Archived from the original on 2022-01-09. Retrieved 2022-01-09.
- ^ a b Schuerer, Katja; Letondal, Catherine; Deveaud, Eric (2008-02-04) [2003-01-06]. "Chapter 5. Program execution, Section 5.2. Interpreter and Compiler". Introduction to Programming using Python - Programming Course for Biologists at the Pasteur Institute. pasteur.fr. Pasteur Institute. pp. 37–40. Archived from the original on 2015-11-11. Retrieved 2015-01-07. [1]
추가 정보
- Calingaert, 피터(1979년)[1978-11-05].노스 캐롤라이나 대학교 채플힐에 쓰여진.호로비츠, 엘리스(교육.).Assemblers, 컴파일러, 그리고 프로그램 번역.컴퓨터 소프트웨어 공학 시리즈(1인쇄 1일 교육.).포토맥, 마릴랜드, USA:컴퓨터 과학 출판부, Inc.아이 에스비엔 0-914894-23-4.ISSN 0888-2088.LCCN 78-21905.그 2020-03-20에 원래에서 Archived..(2+xiv+270+6 페이지)2020-03-20 Retrieved
- Pring-Mill, David (2018-03-04). "Why Hasn't AI Mastered Language Translation?". Singularity Hub. Singularity University. Archived from the original on 2019-12-29. Retrieved 2020-02-02.
- Edwards, Stephen A. (Fall 2013). "Language processors" (PDF). Columbia University. Archived (PDF) from the original on 2019-06-24. Retrieved 2020-02-02.
- Tucker, Allen; Belford, Geneva G. "Computer science". Encyclopædia Britannica. Archived from the original on 2019-07-23. Retrieved 2020-02-02.