2009-01-31 2 views
3

필자는 Microsoft에서 먼저, 그리고 나서 자신의 회사에서 의도적 프로그래밍 분야를 확립하려는 Charles Simonyi의 노력에 대한 야심과 창의성에 시달립니다. 소프트웨어에 대한 이러한 접근 방식에서 http://en.wikipedia.org/wiki/Intentional_programmingAntlr은 DSL 생성기이며 의도적 프로그래밍의 대안입니까?

What exactly is Intentional Programming

하는 프로그래머가 처음으로 (예 : 생명 보험 등) 주어진 문제 영역 특정 도구 상자 을 구축합니다. 도메인 프로그래머가 도움을 준 전문가 인 은 프로그램에서 의도 한 내용 ( )을 설명합니다. (WYSIWYG)와 같은 방식으로 실행하십시오. 자동화 시스템에서는 설명과 도구 상자를 사용하여 최종 프로그램을 생성합니다. 연속적으로 변경 사항은 WYSIWYG 수준에서만 수행됩니다.

소프트웨어 개발에 대한 현재의 접근 방식으로 인해 많은 문제를 잠재적으로 회피하면서 프로그래밍에 유용하고 실용적인 접근 방법 인 것처럼 보입니다.

기본적으로 프로그래머가 아닌 사람 (비즈니스/시스템 분석가)이 도메인 특정 언어를 쉽게 만들 수 있지만 UML보다 실제 구현에 훨씬 가까운 단계에 있습니다. 그는 그것이 결국 완료 될 것이지만 그것이 아직 (거의 15 년 후에) 존재하지 않는다고 말한다.

DSL은 간단한 5 줄 룰 엔진에서부터 Ruby on Rails와 같은 복잡한 애플리케이션까지 모든 영역을 실행합니다. 따라서 그의 제품 출시 지연은 모든 도메인 언어의 캡슐화를 본질적으로 허용해야하기 때문에 훨씬 더 높은 수준의 추상화를 단순화하는 것과 관련이 있다고 생각합니다.

그래서, 내 질문은

입니다

(A) Antlr가 의도적 프로그래밍에 대한 대안이 될 수 있는지 여부 - 아마도 덜 사용자 친화적 인 대안하지만 오히려 DSL을 생성하기 위해 비즈니스 분석가를 허용보다는 프로그래머의 개입이 필요 ?Antlr을 사용하여 Ruby on Rails와 같은 DSL을 생성 할 수 있습니까? (루비를 출력으로 지원한다고 가정 할 때 - 그렇지 않다고 생각하십니까?) 무엇을 할 수 없습니까? 또한 "언어 생성기"보다는 "언어 구문 분석기"라고 불리는 이유를 이해하지 못합니다. 왜냐하면 후자는 용도가 무엇인지 설명하고 전자는 최종 결과를 얻는 방법을 설명하기 때문입니다.

(b)는 ANTLR은 의도적 프로그래밍과 다른 경우, 의도적 프로그래밍과 유사 있나요?

+1

이 질문이나 광고입니까? –

답변

2

나는 이것에 대해 전문가가 아니므로 대단한 소금으로 치료하십시오. 그러나 ...

ANTLR 자체는 DSL 생성기가 아니지만 DSL을 해석하는 코드를 작성하는 데 사용할 수 있습니다. 그것은 파서 생성기이지만, DSL 생성기는 ANTLR이 파서를 생성하는 것을 생성해야합니다.

2

ANTLR은 파서 생성기입니다.평범하지 않은 DSL에서 파서를 작성하는 것은 DSL을 구현하는 데 소요 된 노력의 50 % 미만입니다. 평가자/규칙 엔진/코드 생성기/스케줄 또는 다른 DSL이하는 일은 아마도 더 많은 작업이 필요하고 파서처럼 생성 될 수 없습니다.

파트 B에 대한 답변)에서
2

, 비슷한 공간에서 작업을 세 가지 시스템은 다음과 같습니다 이러한 제품의

각각은 서로 다른 강점과가 있습니다 약점이 있지만 모두는 Language Workbenches입니다. Intentional Software의 Intentional Workbench는 지금까지이 범주에서 가장 야심적인 제품 일 수 있지만 일반적으로 사용할 수는 없습니다.

MPS 및 xText는 무료 오픈 소스 제품입니다. MetaCase는 가장 성숙한 제품이며 상용 제품입니다. 그들 모두는 가파른 학습 곡선을 가지고 있습니다.

관련 문제