젯브레인즈 MPS
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
젯브레인즈 MPS는 젯브레인즈에서 개발한 언어 생성 및 통합 개발 환경(IDE) 플랫폼이다. 추상 구문 트리를 직접 사용하여 텍스트 기반 언어의 문법적 모호성 문제를 해결하고, 언어의 확장과 임베딩을 지원한다. MPS는 언어 정의를 위한 언어와 더불어, 편집기, 자동 완성 등의 IDE 서비스를 제공하며, 기본 언어와 언어 정의 언어를 포함한 여러 기존 언어를 제공한다. MPS를 기반으로 mbeddr, YouTrack, Realaxy ActionScript Editor, PEoPL, GDF 등의 응용 프로그램이 개발되었다. 젯브레인즈 MPS의 소스 코드는 아파치 라이선스에 따라 배포된다.
더 읽어볼만한 페이지
- 프로그래밍 언어 구현 - 어셈블리어
어셈블리어는 사람이 이해하기 쉬운 니모닉 기호로 기계어 명령을 표현하는 저수준 프로그래밍 언어로서, 각 프로세서마다 사양이 다른 어셈블리어가 존재하며 하드웨어 직접 제어, 성능 최적화, 저수준 시스템 프로그래밍 등에 활용된다. - 프로그래밍 언어 구현 - 컴파일러
컴파일러는 고급 프로그래밍 언어로 작성된 소스 코드를 컴퓨터가 이해할 수 있는 저급 언어로 변환하는 프로그램으로, 어휘 분석, 구문 분석, 의미 분석, 최적화, 코드 생성 등의 단계를 거쳐 목적 코드를 생성하며, 네이티브 컴파일러, 크로스 컴파일러 등으로 분류되어 다양한 분야에서 활용된다. - 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 브루클린 미술관
브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다. - 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 광주지방기상청
광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
| 젯브레인즈 MPS - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 기본 정보 | |
| 이름 | Meta Programming System |
![]() | |
| 개발자 | JetBrains |
| 운영 체제 | 크로스 플랫폼 |
| 웹사이트 | 젯브레인즈 MPS |
| 기타 | |
| 관련 정보 | 언어 지향 프로그래밍 도메인 특화 언어 |
2. 구성 가능한 언어 (Composable Languages)
추상 구문 트리(AST)를 직접 사용하여 텍스트 기반 언어에서 발생하는 문법적 모호성 문제를 해결한다. 이를 통해 언어의 확장 및 임베딩이 가능하며, 서로 다른 도메인의 언어 확장이 충돌 없이 함께 사용될 수 있도록 지원한다.[5][6] 텍스트와 유사한 투영 편집기를 사용하여 추상 구문 트리를 편집한다.[14][15]
MPS는 언어 정의를 위한 언어와 더불어 편집기, 자동 완성(코드 완성), 사용처 찾기 등 다양한 IDE 서비스를 자동으로 제공한다.[1] 이러한 기능은 한국의 소프트웨어 개발자들이 새로운 언어를 빠르게 정의하고, 효율적으로 코드를 작성하며, 코드의 유지보수성을 높이는 데 기여할 수 있다.
'''기본 언어'''는 MPS로 99% 재구현된 자바이다. 이 언어에는 컬렉션, 날짜, 클로저, 정규 표현식 등을 위한 다양한 확장 기능이 있다.
젯브레인즈 MPS는 다양한 분야의 소프트웨어 개발에 활용되고 있다.
예를 들어, 자바를 사용하는 개발자가 금융 애플리케이션 작업을 할 때 금액 내장 지원을 받을 수 있다. 그러나 기존의 텍스트형 언어에서는 이러한 확장이 텍스트의 모호성 문제를 일으킨다. MPS에서는 자바가 컬렉션의 더 나은 구문으로 확장된 후, 날짜의 더 나은 구문으로 다시 확장되어도 이러한 확장이 함께 잘 작동한다.
3. 재사용 가능한 언어 인프라 (Reusable Language Infrastructure)
4. 기존 언어 (Existing Languages)
'''언어 정의 언어'''는 MPS 자체를 정의하는 데 사용되는 언어들로, 부트스트래핑 방식으로 구현되어 있다. 여기에는 구조 언어, 에디터 언어, 제약 조건 언어, 타입 시스템 언어, 생성기 언어 등이 포함된다.
5. MPS 응용 프로그램 (MPS Applications)
5. 1. Mbeddr
mbeddr은 MPS 기반의 임베디드 개발 시스템이다. 임베디드 개발 및 형식적 방법론에 특화된 언어를 갖추고 있다.[7]5. 2. YouTrack
2009년 10월 젯브레인즈는 MPS로 개발된 최초의 상업용 소프트웨어 제품인 YouTrack 버그 추적 시스템을 출시했다.[8]
5. 3. Realaxy ActionScript Editor
2010년 4월, MPS 플랫폼을 기반으로 한 최초의 상용 IDE인 Realaxy ActionScript Editor의 베타 버전이 출시되었다.[16]
5. 4. GDF (Gamification Design Framework)
https://github.com/antbucc/GDF GDF는 게임화 애플리케이션을 설계하고 배포하기 위한 프레임워크이다. GDF는 게임화 엔진에서 실행될 구현 코드 방향으로, 더 높은 추상화 수준에서부터 애플리케이션 정의를 단계별로 개선할 수 있도록 하는 도메인 특화 언어(DSL)로 구성된다.[10]
젯브레인즈의 GDF 사례 연구에 따르면,[11] MPS가 선택된 주된 이유는 텍스트 기반 DSL을 제공해야 할 필요성, 추상화 계층 간의 일관성 관리를 전달하는 언어 확장 메커니즘의 활용 가능성, 그리고 구현 코드를 자동으로 파생하는 생성기의 제공이라는 세 가지이다.
6. 라이선스 (Licensing)
MPS 소스 코드는 아파치 라이선스에 따라 배포된다. 이는 한국의 개발자들이 MPS를 자유롭게 사용, 수정, 배포할 수 있음을 의미하며, 오픈 소스 생태계에 기여할 수 있는 기회를 제공한다.
참조
[1]
웹사이트
What is MPS?
https://www.jetbrain[...]
[2]
웹사이트
Language Workbenches: The Killer-App for Domain Specific Languages?
http://martinfowler.[...]
[3]
웹사이트
IntentionalSoftware
http://martinfowler.[...]
[4]
웹사이트
The MPS Language Workbench: Volume I.
http://books.campagn[...]
[5]
웹사이트
JetBrains Meta Programming System Supports Language Oriented Programming and DSLs
http://www.infoq.com[...]
[6]
웹사이트
Language Oriented Programming: The Next Programming Paradigm
http://www.onboard.j[...]
[7]
웹사이트
mbeddr official site
http://mbeddr.wordpr[...]
2010-06-09
[8]
웹사이트
Evolving Java Without Changing the Language
http://www.infoq.com[...]
2009-10-15
[9]
웹사이트
PEoPL {{!}} Projectional Editing of Product Lines
https://peopl.de/
2017-06-19
[10]
서적
2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems (MODELS)
2019-09
[11]
웹사이트
MPS and GDF Case Study
https://resources.je[...]
[12]
문헌
Language Workbenches: The Killer-App for Domain Specific Languages?
http://martinfowler.[...]
[13]
문헌
IntentionalSoftware
http://martinfowler.[...]
[14]
문헌
JetBrains Meta Programming System Supports Language Oriented Programming and DSLs
http://www.infoq.com[...]
[15]
문헌
Language Oriented Programming: The Next Programming Paradigm
http://www.onboard.j[...]
[16]
문헌
Evolving Java Without Changing the Language
http://www.infoq.com[...]
2009-10-15
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
