2013-08-13 1 views
1

VBA로 컴파일하는 언어가 있는지 알고 싶습니다. js 용 coffeescript가 있고, CSS 용 코드가 적습니다.VBA로 컴파일되는 고급 언어가 있습니까?

그렇지 않다면 달성하지 못하는 것이 있습니까? 나쁜 생각일까요?

더 많은 현대 언어로 작업하는 데 많은 도움이되는 사람들에게 도움이 될 것입니다.

어떻게해야합니까? coffeescript 문법과 구문 분석기를 재사용 할 수 있지만 Javascript를 생성하고 대신 VBA를 생성하는 단계를 해킹 할 수 있습니까? VBA의 하위 집합은 괜찮을 것입니다.

+0

transpiler가 없으면 원하는 컴파일 언어로 함수를 코딩하고 VBA에서 액세스 할 수있는 dll을 빌드 할 수 있습니다. – Bob

답변

2

일반적으로 항상 하나의 튜링 언어에서 다른 언어로 컴파일 할 수 있습니다. 그 결과는 빠르지 않을 수도 있지만 일반적으로 상당히 간단합니다.

그래서 Coffeescript가 기존 언어 대신 인 ex nihilo를 만든 이유는 무엇입니까? 완성.

예를 들어, 하스켈에 JS를 쓰고 싶다고 가정 해 보겠습니다. Haskell to JavaScript 컴파일러를 쉽게 구현할 수 있습니다. 이제 Haskell에서 웹 페이지에 대화 상자를 팝업하고 싶다고 가정 해 보겠습니다. JS에서는 alert("hello")이라고 쓰지만, H2JS 컴파일러가 정확하다면, Haskell 함수에는 부작용이 없으므로 어떤 alert 함수도 없을 것입니다. (아마도 하스켈에서 작성하려는 모든 이유가 해당 호출 함수가 대화 상자를 팝업하지 않는 것처럼 좋은 보장을 가질 수 있음).

H2JS 컴파일러가이 기능을 제공 할 수있는 방법은 여러 가지가 있지만 어느 것이 선택되었는지는 분명하지 않습니다. browser-y 작업을 수행하는 방법을 배우려면 JavaScript 설명서를 읽을 수 없습니다. 당신은 또한 당신의 H2JS 컴파일러에 대한 문서를 읽을 필요가있다!

반면에 Coffeescript는 JS와 비슷하기 때문에 JS에서 수행 된 방법을 알지 못했기 때문에 알림을 팝업하고 DOM을 편집하는 방법이 매우 분명합니다.

그래서 slapdash 방식으로하기가 어렵지는 않지만 원본 언어가 VBA와 다른 경우 VBA 관련 작업을 수행하는 것이 까다로울 것입니다. .

+0

하나의 소스를 다른 소스로 옮기는 데 사용하는 언어가 어떻게 타겟 언어를 제한 하는지를 알기가 어렵습니다. 나는 오해가 있다고 생각한다. 나는 CoffeeScript가 Javascript를 목표로 삼고있는 것처럼 VBA로 다시 표기하는 것이 목표 인 언어에 대해 말하고 있습니다. 소스 전환에 대한 개념이 생기면 첫 번째 언어를 구문 분석하여 AST로 변환하고 다른 언어로 해당 코드를 내 보냅니다. 내가 잘못되었거나 불완전한가요? – zrz

+0

질문이 이해가 가지 않습니다. 기술적으로 불가능한 것은 없다는 말은 아닙니다. 기존의 VBA 통합 기능을 존중하는 것이 더 간단하고 명확 해지기 때문에 새로운 CoffeeScript와 유사한 언어를 만드는 것이 의미가 있습니다. –

관련 문제