언어 작업대
Language workbench언어 워크벤치는[1][2] 언어 중심의 프로그래밍[2] 소프트웨어 개발 패러다임에서 소프트웨어 개발을 가능하게 하는 툴 또는 툴셋이다.언어 워크벤치에는 일반적으로 도메인별 언어의 정의, 재사용 및 구성을 지원하는 도구가 통합 개발 환경과 함께 포함된다.언어 워크벤치는 마틴 파울러에 의해 2005년에 도입되고 대중화되었다.
언어 워크벤치는 일반적으로 다음을 지원한다.[1]
예
- 라켓은 컴파일러, JIT 컴파일러, IDE 및 명령줄 도구를 포함하는 교차 플랫폼 언어 개발 워크벤치로, 도메인별 언어와 완전히 새로운 언어를 만들 수 있도록 설계되었으며, 새로운 표기법을 추가하고 구성을 제한하며 IDE 도구를 만들 수 있는 시설을 갖추고 있다.[3][4][5]
- JetBrains MPS는 도메인별 언어를 설계하기 위한 도구다.언어 파서들의 한계를 극복할 수 있는 영사 편집, 테이블과 다이어그램이 있는 편집기 등 DSL 편집기를 구축한다.언어 지향 프로그래밍을 실시한다.MPS는 언어 정의를 위한 환경, 언어 워크벤치, 그리고 그러한 언어들을 위한 통합 개발 환경(IDE)을 결합한다.[6]
- 케르메타는 오픈소스 학술어 워크벤치다.[7]케르메타 워크벤치는 세 가지 다른 메타 언어를 사용한다: 추상 구문(Emof와 정렬)을 위한 하나의 메타 언어; 정적 의미론(OCL과 정렬)을 위한 하나의 메타 언어와 행동 의미론(Kermeta Language 그 자체)을 위한 하나의 메타 언어.
- 멜랑쥬는 다중 도메인별 언어(DSL) 규격 및 구현을 사용자 정의, 조합 및 통합하기 위한 모듈식 접근방식을 제공하는 언어 워크벤치다.[8]
- Spoofax.[9]는 Eclipse 및 IntelliJ용 IDE 플러그인뿐만 아니라 파서, 타입 체커, 컴파일러, 인터프리터를 생성하기 위한 오픈 소스 언어 워크벤치다.[10]구문에는 SDF와 스캐너리스 GLR 파서를, 의미론에는 스트래티지o/XT에서 파생된 형식주의를 사용한다.
- Xtext는 프로그래밍 언어와 도메인별 언어(DSL) 개발을 위한 오픈 소스 소프트웨어 프레임워크다.Xtext는 표준 파서 생성기와 달리 파서뿐만 아니라 추상 구문 트리의 클래스 모델도 생성한다.또한, 완전한 기능을 갖춘 맞춤형 Eclipse 기반 IDE를 제공한다.[11]
- Meeduse는[12] B Method를 사용하여 실행 가능한 도메인별 언어(xDSL)를 구축, 증명, 애니메이션을 할 수 있는 EMF 기반 프레임워크다.툴에는 ProB와 B 메서드의 애니메이터 및 모델 체커가 내장되어 있다.[13]
참고 항목
참조
- ^ a b Fowler, Martin. "LanguageWorkbench". Retrieved 14 April 2015.
- ^ a b Fowler, Martin (12 June 2005). "Language Workbenches: The Killer-App for Domain Specific Languages?". Retrieved 14 April 2015.
- ^ Feltey, Daniel; Florence, Spencer P.; Knutson, Tim; St-Amour, Vincent; Culpepper, Ryan; Flatt, Matthew; Findler, Robert Bruce; Felleisen, Matthias (2016). "Languages the Racket Way" (PDF). 2016 Language Workbench Challenge (65). Retrieved 9 June 2019.
- ^ Tobin-Hochstadt, S.; St-Amour, V.; Culpepper, R.; Flatt, M.; Felleisen, M. (2011). "Languages as Libraries" (PDF). Programming Language Design and Implementation.
- ^ Flatt, Matthew (2012). "Creating Languages in Racket". Communications of the ACM. Retrieved 2012-04-08.
- ^ "JetBrains MPS: Domain-Specific Language Creator".
- ^ Jézéquel, Jean-Marc; Combemale, Benoit; Barais, Olivier; Monperrus, Martin; Fouquet, François (2013). "Mashup of metalanguages and its implementation in the Kermeta language workbench" (PDF). Software & Systems Modeling. 14 (2): 905–920. arXiv:1306.0760. doi:10.1007/s10270-013-0354-4. S2CID 199965.
- ^ "Melange".
- ^ "The Spoofax Language Workbench".
- ^ Kats, Lennart C. L.; Visser, Eelco (2010). "The Spoofax language workbench: rules for declarative specification of languages and IDEs.". Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2010. doi:10.1145/1869459.1869497.
- ^ "Xtext".
- ^ Idani, Akram; Ledru, Yves; Vega, German (December 2020). "Alliance of Model Driven Engineering with a proof-based Formal Approach". Innovations in Systems and Software Engineering (ISSE), NASA Journal. 6 (3). doi:10.1007/s11334-020-00366-3.
- ^ "Meeduse".
외부 링크
- 마틴 파울러, 랭귀지 워크벤치
- Language Workbench Challenge