C/C++ 소스로 컴파일되는 프로그래밍 언어?
JavaScript 개발을 쉽게 하기 위해 CoffeeScript를 사용하고 있습니다.자바스크립트로 컴파일되는 깨끗한 구문을 가진 언어입니다.
그러면 구문을 단순화하고 기능을 향상시키기 위해 C/C++ 소스 코드로 컴파일하는 확립된 프로그래밍 언어는 무엇일까요?
Haxe는 C++, C#, Java, JavaScript, Python(실험), PHP, Flash 및 NekoVM으로 출력할 수 있습니다.
Vala와 Genie는 GObject 유형 시스템을 사용하여 C 코드로 컴파일하는 언어입니다.써본 적은 없지만 재미있을 것 같아요.GObject는 GTK에서 사용하는 시스템이지만 GTK에서 분리할 수 있다고 생각합니다.
GHC(Glasgow Haskell 컴파일러)에는 옵션(-fvia-cC로 컴파일 합니다.
그러나 v7부터는 외부 C 컴파일러를 경유하지 않고 LLVM을 사용하여 네이티브 코드를 생성할 수 있을 것으로 생각합니다.
QT 문서 인용:
Meta-Object 컴파일러 moc는 Qt의 C++ 확장을 처리하는 프로그램입니다.moc 툴은 C++ 헤더파일을 읽습니다.Q_OBJECT 매크로를 포함하는 클래스 선언을 하나 이상 찾으면 해당 클래스의 메타 오브젝트 코드를 포함하는 C++ 소스 파일이 생성됩니다.그 중에서도 메타 오브젝트 코드는 신호 및 슬롯 메커니즘, 런타임 유형 정보 및 동적 속성 시스템에 필요하다.moc에 의해 생성된 C++ 소스 파일은 컴파일되어 클래스 구현과 링크되어야 합니다.
그래서 C++가 C++로 바뀌는 것과 비슷하지만, 당신이 찾고 있는 것에 맞는지 잘 모르겠습니다.
LLVM용 C 백엔드를 작성하여 C로 거의 모든 것을 변환할 수 있지만, 더 심오한 질문은 "왜?"입니다.현재 이 기능을 수행하는 툴이 없는 이유는 C로 컴파일할 경우 중간 머신 코드 언어를 대상으로 하는 것이 어떻겠습니까? (예를 들어 LLVM이나 JVM)
옛날에는 적절한 VM 언어가 부족했기 때문에 C로 컴파일하는 것이 다소 방어적이었습니다만, 오늘날에는 그럴 만한 이유가 별로 없습니다.단, 특정 인터프리터 언어를 사용하여 C/C++로 컴파일하는 프로젝트는 여전히 많이 찾을 수 있습니다.예를 들어 Python to C++ 컴파일러는 다음과 같습니다.
http://shed-skin.blogspot.com/
OOC는 아주 새롭지만 꽤 좋다.
clang은 C++를 C로 컴파일 할 수 있다고 합니다.하지만 그렇게 하면 '간단화'가 안 될 것 같아요.
대부분의 언어를 사용하여 C 코드를 생성할 수 있지만, 실제로 어떤 작업을 수행하느냐에 따라 다릅니다.정말 코드를 읽을 수 있기를 원하십니까?Windows 애플리케이션을 작성하려고 하는 것 뿐입니까?
배우기 쉬운 보편적으로 유용한 언어를 찾고 있다면 Python은 항상 좋은 선택이며 C/C++가 할 수 있는 모든 것을 할 수 있습니다.
HipHop은 PHP 프로그램을 C++로 변환합니다.
프로그래밍 언어 IBM Informix 4GL은 C 코드로 다단계 변환을 거치고 C 코드는 자체 런타임 라이브러리, ESQL/C(C에 포함된 SQL) 런타임 라이브러리 및 시스템의 C 라이브러리로 컴파일 및 링크됩니다.
program.4gl(원래 소스 코드).program.4ec- ESQL/C 및 확장 입력 조작을 내장한 C 코드program.ec(ESQL/C가 내장된 C코드).program.c(순수 C코드).program.o- 오브젝트 코드program- 실행 파일
그.4ec국면은 과거의 사고입니다.원래 ESQL/C 컴파일러는 확장 입력 조작과 ESQL/C를 모두 처리했습니다만, 확장 조작이 ESQL/C 컴파일러에서 삭제되었을 때(ESQL/C 라이브러리와 컴파일러가 대폭 고쳐졌을 때), 처리한 코드를 분리함으로써 확장 입력 조작이 처리되었습니다.원본 ESQL/C 컴파일러에서 가져온 것입니다.
상당수의 사람들이 I4GL 소스를 다른 언어로 쓰거나 I4GL 컴파일러에 제출되기 전에 I4GL에 밀접하게 관련된 소스 코드를 사전 처리하는 코드 생성기를 작성했습니다.
Embeddable Common Lisp(ECL)는 Common Lisp를 C로 컴파일할 수 있습니다.
사람들은 대부분의 주요 프로그래밍 언어가 튜링 완전 언어이기 때문에, 그것들은 실제로 동등하며, 그것들에 쓰여진 프로그램들은 서로 번역될 수 있다고 주장할 수 있다.
즉, 다른 사람들이 언급했듯이 C 코드를 생성하는 백엔드가 있는(또는 개발 초기에 존재했던) 언어는 상당히 많습니다.그것은 바이너리 코드 생성과 관련된 복잡성을 언어 구현에서 제거했기 때문입니다.그것은 코드가 실제로 읽혔다는 것을 의미하지 않는다(의도하지 않았다).그것은 컴파일된 형식보다 읽기 쉬웠다.
리스트에 대한 나의 공헌에 대해 말하자면, lex와 yacc의 「프로그램」(그것을 생각할 수 있는 경우)은, 통상, C코드로 변환됩니다.-끔찍하고 뒤엉킨 혼란입니다만, 그래도 C코드는...
Oracle의 PRO*C/C++는 임베디드 SQL 언어입니다.C/C++에 SQL 문을 포함할 수 있습니다.C/C++는 내장된 SQL 문을 필요한 C/C++ SQL 라이브러리에 대한 함수 호출로 대체하는 프리 컴파일러에 의해 처리됩니다.프리 컴파일러로부터의 출력은 표준 C/C++ 로, 실행 파일로 컴파일 할 수 있습니다.
http://en.wikipedia.org/wiki/Pro*C
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14407/toc.htm
Matlab(Embedded Matlab)의 서브셋을 C로 컴파일할 수 있습니다.임베디드 코더 툴박스가 필요해요.
언급URL : https://stackoverflow.com/questions/6498850/programming-languages-that-compile-into-c-c-source
'programing' 카테고리의 다른 글
| Vuex는 액션을 디스패치할 때 2개의 요소가 상태 변경됨 (0) | 2022.07.27 |
|---|---|
| javax.net.ssl 해결.SSLHandshakeException: sun.security.validator.검증자예외: PKIX 경로 구축에 실패했습니다. 오류? (0) | 2022.07.27 |
| 템플릿에서 작업하지만 계산된 속성에서 작업하지 않는 혼합 (0) | 2022.07.27 |
| c에서 nan과 inf를 어떻게 사용하는가? (0) | 2022.07.26 |
| VueJs Vue.component에서 데이터를 가져오는 방법 (0) | 2022.07.26 |