Til dastgohi - Language workbench - Wikipedia

A til ustaxonasi[1][2] da dasturiy ta'minotni ishlab chiqishni ta'minlaydigan vosita yoki vositalar to'plamidir tilga yo'naltirilgan dasturlash[2] dasturiy ta'minotni ishlab chiqish paradigmasi. Til ustaxonasi odatda ta'rifi, qayta ishlatilishi va tarkibini qo'llab-quvvatlovchi vositalarni o'z ichiga oladi domenga xos tillar ular bilan birga birlashgan rivojlanish muhiti. Til dastgohlari tomonidan tanishtirildi va ommalashtirildi Martin Fauler 2005 yilda.

Til dastgohlari odatda quyidagilarni qo'llab-quvvatlaydi:[1]

  • Til tushunchalarining spetsifikatsiyasi yoki metamodel
  • Uchun tahrirlash muhitlarining spetsifikatsiyasi domenga xos til
  • Ijro semantikasining spetsifikatsiyasi, masalan. talqin qilish orqali va kod yaratish

Misollar

  • Raketka kompilyator, JIT kompilyatori, IDE va ​​buyruq qatori vositalarini o'z ichiga olgan o'zaro faoliyat platforma tilini ishlab chiqish dastgohi. domenga xos tillar va yangi yozuvlarni qo'shish, konstruktsiyalarni cheklash va IDE vositalarini yaratish imkoniyatlariga ega bo'lgan butunlay yangi tillar.[3][4][5]
  • JetBrains MPS domenga xos tillarni loyihalashtirish vositasidir. Bu tilni tahlil qilish chegaralarini engib o'tishga va jadval va diagrammalarga ega bo'lgan DSL muharrirlarini yaratishga imkon beradigan proektsion tahrirdan foydalanadi. U tilga yo'naltirilgan dasturlashni amalga oshiradi. MPS tilni aniqlash uchun muhitni, tilni ishchi stolini va bunday tillar uchun Integrated Development Environment (IDE) ni birlashtiradi.[6]
  • Kermeta ochiq manbali akademik til ish stolidir.[7] Kermeta dastgohida uch xil meta-til ishlatiladi: mavhum sintaksis uchun bitta meta-til (bilan moslashtirilgan) Emof ); statik semantika uchun bittasi (bilan hizalanadi OCL ) va xulq-atvor semantikasi uchun (Kermeta tili o'zi deb ataladi).
  • Melange - bu bir nechta domenga xos tillarni (DSL) sozlash va sozlash uchun modulli yondashuvni ta'minlaydigan til ish stolidir.[8]
  • Spoofax.[9] - bu ajraluvchilar, tip tekshirgichlar, kompilyatorlar, tarjimonlar va shuningdek IDE plaginlarini yaratish uchun ochiq manba tilidagi ish stolidir. Tutilish va IntelliJ.[10] U foydalanadi SDF va a skanersiz GLR tahlilchisi sintaksis uchun va olingan formalizmlar uchun Stratego / XT semantika uchun.
  • Matn dasturlash tillari va domenga xos tillarni (DSL) rivojlantirish uchun ochiq manbali dasturiy ta'minot bazasi. Standart parser generatorlaridan farqli o'laroq, Xtext nafaqat ajraluvchi, balki mavhum sintaksis daraxti uchun sinf modelini ham yaratadi. Bundan tashqari, u to'liq xususiyatli, sozlanishi Eclipse-ga asoslangan IDE-ni taqdim etadi.[11]

Shuningdek qarang

Adabiyotlar

  1. ^ a b Fowler, Martin. "LanguageWorkbench". Olingan 14 aprel 2015.
  2. ^ a b Fowler, Martin (2005 yil 12-iyun). "Til ustaxonalari: domenga xos tillar uchun qotil-ilova?". Olingan 14 aprel 2015.
  3. ^ Feltey, Daniel; Florensiya, Spenser P.; Knutson, Tim; Sent-Amur, Vinsent; Kalpepper, Rayan; Flatt, Metyu; Findler, Robert Bryus; Felleisen, Matthias (2016). "Raketka tilida tillar" (PDF). 2016 yildagi Til Workbench Challenge (65). Olingan 9 iyun 2019.
  4. ^ Tobin-Xoxstadt, S.; St-Amur, V .; Kalpepper, R.; Flatt, M.; Felleisen, M. (2011). "Tillar kutubxona sifatida" (PDF). Dasturlash tilini loyihalash va amalga oshirish.
  5. ^ Flatt, Metyu (2012). "Tillarni reketda yaratish". ACM aloqalari. Olingan 2012-04-08.
  6. ^ "JetBrains MPS: domenga xos til yaratuvchisi".
  7. ^ Jézéquel, Jan-Mark; Combemale, Benoit; Barays, Olivye; Monperrus, Martin; Fouquet, Fransua (2013). "Kermeta tilidagi dastgohda metall tillarini tuzish va uni amalga oshirish" (PDF). Dasturiy ta'minot va tizimlarni modellashtirish. 14 (2): 905–920. arXiv:1306.0760. doi:10.1007 / s10270-013-0354-4.
  8. ^ "Melanj".
  9. ^ "Spoofax tili dastgohi".
  10. ^ Kats, Lennart C. L.; Visser, Eelco (2010). "Spoofax tilining ishchi dastgohi: tillar va IDE larning deklarativ spetsifikatsiyasi qoidalari.". Ob'ektga yo'naltirilgan dasturlash, tizimlar, tillar va ilovalar bo'yicha 25-yillik ACM SIGPLAN konferentsiyasi materiallari, OOPSLA 2010. doi:10.1145/1869459.1869497.
  11. ^ "Xtext".

Tashqi havolalar