2012-03-20 4 views
6

(가능하면) 비교적 낮은 오버 헤드로 크로스 플랫폼에서 실행될 수 있도록 표준 C로 컴파일되는 정식 검증에 적합한 상위 레벨 시스템 언어를 찾고 있습니다. c로 컴파일되는 고급 시스템 언어?

나는 지난 몇 일 동안 발견 한 두 개의 가장 유망한 같은 언어

은 다음과 같습니다

  1. BITC이 -이 언어의 설계 목표는 내 요구를 일치하는 동안 (그것도 기능 패러다임을 지원), 그것은 매우 불안정한 상태에 있으며 설명서가 오래되어 일반적으로 실제 프로젝트에서 매우 긴 장면처럼 보입니다.

  2. Lisaac - 매우 시원하고 상대적으로 낮은 성능 오버 헤드를 가진 Design-by-Contract를 지원합니다. 그러나 웹 사이트는 죽었습니다. 2008 년 이후로 새로운 버전이 출시되지 않았고 일반적으로 언어가 죽은 것으로 보입니다. 나는 또한이 실시간 시스템을위한 것이 아닙니다, 그래서 GC 또는, 일반적으로, (실시간 의미에서) 비 결정론이 문제가되지 않는 것 참고하고 싶습니다

.

프로젝트는 크로스 플랫폼이어야하지만 주로 오디오 처리가 필요합니다.

저는 누군가가 저에게 명백한 대답 인 "plain ol 'C"를 가르키고 있다고 가정합니다. 진정으로 크로스 플랫폼이며 매우 효과적이지만, 코드 양은 더 클 것입니다.

편집 : 크로스 플랫폼 및 교차 아키텍처를 의미하는지 명확히해야합니다. 그래서 처음부터 C 언어로만 컴파일 된 언어를 생각해 보았습니다. 그러나 다른 예제를 가르쳐 주시면 감사하겠습니다. :)

+6

C++을 보셨습니까? 높은 수준의 시스템 언어입니다. –

+2

네,하지만 C++에 의해 도입 된 복잡성은 여분의 문제가되지 않을 것입니다. 또한이 지구의 모든 컴파일러는 언어 표준의 다른 부분을 지원하며 예를 들어. 예외는 엉망이다. RTTI와 C++을 더 높은 수준으로 만드는 모든 기능에 동일하게 적용됩니다. –

+0

C++이 마음에 들지 않는다면 GC가있는 D를 살펴보고 C++보다 덜 복잡합니다. 하지만 라이브러리는 많지 않지만 C++ can처럼 C 코드와 상호 작용할 수 있습니다. 이 두 언어 중 어느 것도 실제로 C로 컴파일되지는 않지만 기계어 코드로 컴파일됩니다. –

답변

3

ATS에 관심이 있으리라고 생각합니다. 그것은 C로 컴파일됩니다 (실제로 형식적인 이론적 관점에서 많은 C 관용구와 패턴을 표현하고 설명합니다. 더 많은 시간이 필요할 경우 ... 이것을 보여줄 책을 준비하는 것이 제안되었습니다).

프로젝트는 크로스 플랫폼이어야하지만 주로 오디오 처리가 필요합니다.

저는 오디오 프로세싱에 대해 잘 모릅니다. 주로 컴퓨터 그래픽을 주로 사용해 왔습니다.

또한 ATS가 Windows에서 작동하는지 (결코 시도하지 않았습니다.) 확실하지 않습니다.

(면책 조항 : 저는 ATS와 관련하여 다소 시간이 많이 걸렸습니다. 부피가 크고 언어가 큰데 사용하기가 어려웠지만, 예를 들어,) 몇 가지 현실적인 프로그램 GLES2 bindings에서 다음은 엄격하게 요구 사항을 준수하지 않는

+0

+1, 이것은 내가 필요로하는 것에 대한 가장 가까운 대답이지만, 처음 보는 것부터 생성 된 C 코드는 GCC에 의해서만 컴파일 될 필요가있다. GCC는 많은 플랫폼에서 실행되지만 유비쿼터스가 없다. –

+0

@ K.Steff, C 컴파일러에서 * C 컴파일러로 컴파일 할 수있는 언어가 필요한 경우 문제가 발생합니다. 그러나, 나는 당신이이 시점에서 당신의 필요에 맞는 특정 컴파일러 (GCC와 Clang)에 정착 할 수 있다고 생각한다. 그런 다음 우리는 Clang을 통해 ATS를 컴파일 할 수 있도록 함께 작업 할 수있었습니다 (나는 C 파일 *이 마지막으로 시도한 Clang으로 컴파일했으나 일부 ​​누락 된 헤더가 있음을 기억합니다.). 당신이 이국적인 플랫폼/컴파일러를 필요로한다면, 좀 더 구체적으로하십시오; 어쩌면 우리는 그것을 해결할 수도 있습니다. –

2

를 TEST 하위 디렉토리를 볼 수 있지만 어쨌든 그것을 언급하고 싶습니다과 코멘트에 대해 너무 깁니다 :

Pypy의 RPython은 C. Here's a nice talk about it으로 번역 될 수 있습니다. Smalltalk, JavaScript, Io, Scheme, Gameboy (다양한 정도의 완성도)을 구현하는 데 사용되었지만 독립 실행 형 프로그램을 작성할 수 있습니다. 주로 runs on Intel x86 (IA-32) and x86_64 platforms 인 파이썬 언어 구현으로 알려져 있습니다.

변환 프로세스에는 가능한 C 컴파일러가 필요합니다.툴체인은 공식적인 검증을 위해 재사용 할 수있는 코드 (번역 프로세스 자체에서 사용되는)에 대해 여러 가지를 추론 할 수있는 수단을 제공합니다.

파이썬과 C를 모두 알고 있다면 파이썬과 유사한 구문을 C로 변환하는 cython을 사용할 수 있습니다. CPython 확장을 작성하는 데 사용됩니다.

+0

고마워,이게 뭔가 유용하다, 내가 그것을 찾을거야 :) –