Raketka (dasturlash tili) - Racket (programming language)

Raketka
Racket-logo.svg
Drracket.png
DrRacket yoqilgan Ubuntu
ParadigmaKo'p paradigma: funktsional, majburiy, mantiq, meta, modulli, ob'ektga yo'naltirilgan, aks ettiruvchi
OilaLisp
LoyihalashtirilganPLT Inc.
TuzuvchiPLT Inc.
Birinchi paydo bo'ldi1995; 25 yil oldin (1995)
Barqaror chiqish
7.9[1] / 2020 yil 2-noyabr; 34 kun oldin (2020-11-02)
Matnni yozishDinamik, statik, kuchli
Platformax86, PowerPC, SPARC, MIPS, ARM
OSO'zaro faoliyat platforma
LitsenziyaMIT yoki Apache 2.0[2]
Fayl nomi kengaytmalari.rkt[3]
Veb-saytreket-lang.org
Lahjalar
FrTime, Lazy Racket, Scribble, Typed Racket
Ta'sirlangan
Eyfel,[4] Sxema
Ta'sirlangan
Klojure,[5] Zang,[6][7] Sxema[8]

Raketka a umumiy maqsad, ko'p paradigma dasturlash tili asosida Sxema lahjasi Lisp. Bu platforma bo'lishi uchun mo'ljallangan dasturlash tilini loyihalash va amalga oshirish.[9] Raketka tilidan tashqari, Raketka dasturlash tillari oilasiga murojaat qilish uchun ham ishlatiladi[10] va Racket-da va u bilan birgalikda rivojlanishni qo'llab-quvvatlovchi vositalar to'plami.[11] Raketka uchun ham ishlatiladi stsenariy, Kompyuter fanlari ta'lim va tadqiqot.

Racket platformasi Raket tilini amalga oshirishni ta'minlaydi (shu jumladan a ish vaqti tizimi,[12] kutubxonalar va JIT kompilyatori ) bilan birga DrRacket birlashgan rivojlanish muhiti (IDE) Raketkada yozilgan.[13] Raketka tomonidan ishlatiladi ProgramByDesign burilishga qaratilgan targ'ibot dasturi Kompyuter fanlari ning "ajralmas qismiga liberal san'at o'quv dasturi ".[14][15]

Raketka tili juda kengligi bilan mashhur so'l ko'milgan va yaratishni ta'minlaydigan tizim domenga xos tillar kabi til konstruktsiyalari sinflar yoki modullar va Racket-ning turli xil dialektlari semantik.[16][17][18][19]

Platformani tarqatish bepul va ochiq manbali dasturiy ta'minot ostida tarqatilgan Apache 2.0 va MIT litsenziyalari.[20] Hamjamiyat tomonidan yozilgan kengaytmalar va to'plamlar Racket's-ga yuklanishi mumkin to'plam katalogi.

Tarix

Rivojlanish

Matthias Felleisen 1990-yillarning o'rtalarida, dastlab tadqiqot guruhi sifatida, ko'p o'tmay ishlab chiqarishga bag'ishlangan loyiha sifatida PLT-ni tashkil etdi pedagogik Ajam dasturchilar uchun materiallar (ma'ruzalar, mashqlar / loyihalar, dasturiy ta'minot). 1995 yil yanvar oyida guruh pedagogik dasturlash muhitini rivojlantirishga qaror qildi Sxema. Metyu Flatt birgalikda MrEd, original virtual mashina Racket uchun, libscheme-dan,[21] wxWidgets, va boshqa bir nechta bepul tizimlar.[22] Keyingi yillarda Flatt, shu jumladan bir jamoa, Robbi Findler, Shriram Krishnamurthi, Cormac Flanagan va boshqalar DrScheme-ni ishlab chiqdilar, bu Ajam dasturchilar uchun dasturiy muhit va tadqiqot muhiti. yumshoq terish.[13] DrScheme tomonidan qo'llab-quvvatlanadigan asosiy rivojlanish tili PLT sxemasi deb nomlandi.

Bunga parallel ravishda, jamoa o'rta maktab o'qituvchilari uchun seminarlarni o'tkazishni boshladi, ularni dasturlarni ishlab chiqish va funktsional dasturlash bo'yicha o'qitdilar. Ushbu o'qituvchilar va ularning talabalari bilan o'tkazilgan maydon sinovlari rivojlanishni boshqarish uchun muhim maslahatlar berdi.

Keyingi yillarda PLT algebraik stepper,[23] shaffof o'qish-baholash-chop etish davri, DrScheme-ga konstruktorlarga asoslangan printer va boshqa ko'plab yangiliklar, amaliy pedagogik dasturlarni ishlab chiqish muhitini ishlab chiqaradi. 2001 yilga kelib, asosiy guruh (Felleisen, Findler, Flatt, Krishnamurthi) ham birinchi darsligini yozdilar va nashr etdilar, Dasturlarni qanday tuzish kerak, ularning o'qitish falsafasiga asoslanib.

Raketka manifesti[9] Racket-ning rivojlanishini ta'minlaydigan printsiplarni batafsil tavsiflaydi, dizayn jarayoni asosida baholash tizimini taqdim etadi va kelajakda takomillashtirish imkoniyatlarini batafsil bayon qiladi.

Versiya tarixi

PLT sxemasini qayta ko'rib chiqishning birinchi avlodi uchun xususiyatlarni taqdim etdi keng miqyosda dasturlash ikkalasi bilan ham modullar va sinflar. 42-versiyada keng ko'lamli rivojlanish uchun sinflarni to'ldirish uchun birliklar - birinchi darajali modul tizimi taqdim etildi.[24] Sinf tizimi xususiyatlarga ega bo'ldi (masalan: Java - uslub interfeyslar ) va shuningdek, bir nechta xususiyatlarni yo'qotdi (masalan, ko'p meros ) ushbu versiyalar davomida.[16] Til bir qator ketma-ket versiyalar davomida rivojlanib bordi va 53-versiyada mashhurlikka erishdi, bu keng ko'lamli ishlarga va quyidagi 100-versiyaga olib keldi, bu hozirgi mashhur versiya tizimlarida "1.0" chiqishiga teng bo'ladi.

Keyingi yirik tahrir Makroslar bilan hamkorlik qiladigan yangi standart modul tizimini taqdim etgan Version 200 deb nomlandi.[24] Xususan, modul tizimi ish vaqtini va kompilyatsiya vaqti hisoblash "tillar minorasi" ni qo'llab-quvvatlash uchun ajratilgan.[25] Birliklardan farqli o'laroq, ushbu modullar bunday emas birinchi darajali ob'ektlar.

300-versiyasi taqdim etildi Unicode qo'llab-quvvatlash, chet el kutubxonasi qo'llab-quvvatlash va sinf tizimini takomillashtirish.[24] Keyinchalik, 300 seriya yaxshilandi ishlash JIT kompilyatori qo'shilgan va sukut bo'yicha o'tish bilan tilni ishlash vaqti axlat yig'ish.

Keyingi yirik nashrga kelib, loyiha odatiy holatga o'tdi ketma-ketlikka asoslangan versiya raqamlash. 4.0 versiyasi #lang modul yozilgan tilni ko'rsatish uchun stenografiya. Keyinchalik, reviziya kiritildi o'zgarmas juftliklar va ro'yxatlar, nozik tanelilarni qo'llab-quvvatlash parallellik va a statik usulda yozilgan lahjasi.[26]

2010 yil 7-iyun kuni PLT sxemasi Raketka deb o'zgartirildi.[27] Nomini o'zgartirish Version 5.0 versiyasiga to'g'ri keldi. Keyinchalik, grafik foydalanuvchi interfeysi (GUI) backend-dan Racket-da qayta yozilgan C ++ native-dan foydalangan holda 5.1-versiyada UI asboblar to'plamlari barcha platformalarda.[22] 5.2 versiyasi fonni o'z ichiga olgan sintaksisni tekshirish vositasi, yangi chizmalar kutubxonasi, ma'lumotlar bazasi kutubxonasi va yangi kengaytirilgan REPL.[28] 5.3 versiyasida ixtiyoriy ravishda yuklangan modullar uchun yangi submodul xususiyati mavjud,[29] yangi optimallashtirish asboblar, a JSON kutubxona va boshqa xususiyatlar.[30] 5.3.1 versiyasi DrRacket-ga katta yaxshilanishlarni kiritdi: fon sintaksisini tekshiruvchi sukut bo'yicha yoqilgan va yangi hujjatlarni oldindan ko'rish vositasi qo'shilgan.[31]

6.0 versiyasida Racket o'zining ikkinchi avlod paketlarini boshqarish tizimini chiqardi. Ushbu rivojlanish doirasida asosiy DrRacket va Racket ombori qayta tashkil etilib, kichik paketlarning katta to'plamiga bo'linib, uni o'rnatish imkoniyatini yaratdi. minimal raketka va faqat kerakli paketlarni o'rnatish uchun.[32]

Racket-ning 7-versiyasi Racket-da yozilgan yangi so'l kengaytirgich bilan chiqdi Chez sxemasi ish vaqti tizimi va bir nechta ish vaqti tizimlarini qo'llab-quvvatlash.[33][34]

2019 yil 19-noyabrda Racket 7.5 chiqdi. Racket 7.5 litsenziyasi unchalik cheklanmagan. Ular endi Apache 2.0 yoki MIT litsenziyalaridan foydalanadilar.[35][36]

Xususiyatlari

Raketkaning asosiy tiliga quyidagilar kiradi makrolar, modullar, leksik yopilishlar, quyruq qo'ng'iroqlari, ajratilgan davomlar,[37] parametrlar (suyuqlik o'zgaruvchilari), dasturiy ta'minot shartnomalari,[38] yashil va OS iplar,[39][40][41] va boshqalar. Til, shuningdek, resurslarni boshqarishni boshqaradigan va tilni o'z vazifasini bajarishga imkon beradigan voqealar maydoni va saqlovchilar kabi ibtidoiy narsalar bilan birga keladi. operatsion tizim boshqa dasturlarni yuklash va boshqarish uchun.[12] Tilga qo'shimcha kengaytmalar kuchli makro tizim yordamida yaratiladi, ular modul tizimi va maxsus tahlilchilar bilan birgalikda tilning barcha jihatlarini boshqarishi mumkin.[42] Ibratli tizimlarga ega bo'lmagan dasturlash tillaridan farqli o'laroq, Raketkada aksariyat til konstruktsiyalari asosiy tilda makrolar yordamida yoziladi. Ular orasida a mixin sinf tizimi,[16] ML kabi ifodali komponent (yoki modul) tizimi shaffof bo'lmagan yozuv,[17] va naqshlarni moslashtirish.

Bundan tashqari, tilda a uchun birinchi shartnoma tizimi mavjud yuqori darajadagi dasturlash til.[43]Racket-ning shartnoma tizimi Shartnoma bo'yicha loyihalash uchun ishlash Eyfel kabi yuqori darajadagi qiymatlar uchun ishlashga imkon beradi va kengaytiradi birinchi darajali funktsiyalar, ob'ektlar, ma'lumotnoma hujayralar va boshqalar. Masalan, shartnoma bilan tekshiriladigan ob'ekt, uning usullari oxir-oqibat qo'llanilganda shartnoma tekshiruvlarini amalga oshirilishini ta'minlashi mumkin.

Raketka ikkalasini ham o'z ichiga oladi bayt kodi va JIT (JIT) kompilyatorlari. Raketka tomonidan boshqariladigan ichki bayt kodi formatiga o'tadigan bayt kodi kompilyatori virtual mashina, JIT kompilyatori bilan bayt kodini mahalliy kodga tarjima qilish bilan x86, x86-64, ARM va PowerPC ishlash vaqtida platformalar.

2004 yildan buyon til PLaneT bilan ta'minlandi, bu modul tizimiga kiritilgan paket menejeri uchinchi tomon kutubxonalari shaffof ravishda import qilinishi va ishlatilishi mumkin. Bundan tashqari, PLaneT ichki o'rnatilgan versiya oldini olish siyosati qaramlik jahannam.[44]

2014 yil oxirida Racket kodining katta qismi asosiy kod bazasidan alohida yangi qadoqlash tizimiga o'tkazildi. Ushbu yangi qadoqlash tizimiga xizmat ko'rsatuvchi mijoz dasturi taqdim etiladi raco. Yangi paket tizimi PLaneT-ga qaraganda kamroq funktsiyalarni taqdim etadi; Raket blogida Jey Makkartining blogdagi xabari o'zgarishlarning mantiqiy asoslarini va eski tizimning nusxalarini qanday qilishni tushuntiradi.[45]

Integratsiyalashgan til kengayishi va makrolar

Raketni Lisp oilasidagi boshqa tillardan eng aniq ajratib turadigan xususiyatlar uning birlashtirilgan tilidir kengayish yangi qurilishni qo'llab-quvvatlovchi xususiyatlar domenga xos va umumiy maqsad tillar. Raketning kengaytirilishi xususiyatlari sintaksisni kontekstga sezgir va modul darajasida boshqarish uchun modul tizimiga kiritilgan.[18] Masalan, #% ilova semantikasini o'zgartirish uchun sintaktik shaklni bekor qilish mumkin funktsiyani qo'llash. Xuddi shunday, #% modul-boshlash forma butun modulni o'zboshimchalik bilan statik tahlil qilishga imkon beradi.[18] Har qanday modul til sifatida ishlatilishi mumkinligi sababli #lang belgi, bu tilning deyarli har qanday tomonini dasturlash va boshqarish mumkinligini anglatadi.

Modul darajasidagi kengayish xususiyatlari a bilan birlashtirilgan Sxema -dan ko'proq xususiyatlarni ta'minlaydigan gigienik so'l tizimiga o'xshaydi Lispnikidir s-ekspression manipulyatsiya tizimi,[46][47] Sxema 84 gigienik kengaytiruvchi sintaksis so'llari yoki R5RS "s sintaksis qoidalari. Darhaqiqat, so'l tizimni sinchkovlik bilan sozlangan deb aytish adolatli dastur dasturlash interfeysi (API) uchun kompilyator kengaytmalar. Ushbu kompilyator API-dan foydalanib, dasturchilar funktsiyalar va butunlikni qo'shishlari mumkin domenga xos tillar ularni ichki til konstruktsiyalaridan umuman farq qilmaydigan qilib.

The so'l Racket-dagi tizim butun tilni yaratish uchun ishlatilgan lahjalar. Bunga Typing Racket kiradi, bu ko'chib o'tishni engillashtiradigan Raketning asta-sekin terilgan shevasi asossiz terilgan kodga,[48] Lazy Racket - shevasi dangasa baho,[49] va Haskell va Racket-ni birlashtirgan Hackett.[50] Pedagogik dasturlash tili Piret dastlab Racket-da amalga oshirildi.[51][52]

Boshqa dialektlar orasida FrTime (funktsional reaktiv dasturlash ), Scribble (hujjatlar tili),[53] Slayd-shou (taqdimot til),[54] va ta'lim uchun bir nechta tillar.[55][56] Racket-ning asosiy tarqatilishi kutubxonalarni yangi dasturlash tillarini yaratish jarayonida yordam beradi.[18]

Bunday tillar bilan cheklanmagan s-ifoda asoslangan sintaksis. Oddiy o'qishga asoslangan sintaksis kengaytmalaridan tashqari, Racket's #lang til dasturchisiga istalgan ixtiyoriy ajratuvchini aniqlashga imkon beradi, masalan, ajralish vositalari kutubxonasi yordamida.[57] Qarang Raketka mantiqiy dasturlash bunday tilning misoli uchun.

Dasturlash muhiti

Til platformasi a o'z-o'zini tashkil qiladi IDE[13] DrRacket deb nomlangan, davomi asoslangan veb-server,[58] a grafik foydalanuvchi interfeysi,[22] va boshqa vositalar. Raketka shuningdek, skriptni yaratishga yaroqli vositasidir va Unix qobig'ini skript qilish uchun ishlatilishi mumkin. Bu ajralishi mumkin buyruq qatori argumentlari, tashqi vositalarni ishga tushirish va keng tarqalgan kutubxonalarni o'z ichiga oladi stsenariy tillari.

DrRacket IDE

DrRacket (avvalgi DrScheme) Sxema yoki Raketka o'qitadigan kompyuter fanining boshlang'ich kurslari orasida keng qo'llaniladi va soddaligi va boshlang'ich dasturchilariga ma'qul keladi. IDE dastlab TeachScheme-da foydalanish uchun qurilgan! loyiha (hozir ProgramByDesign ) tomonidan tarqatish ishlari Shimoli-sharq universiteti o'rta maktab o'quvchilarini kollej darajasida informatika kurslariga jalb qilish uchun bir qator filiallar.

Muharrir beradi manbani ajratib ko'rsatish sintaksis va ish vaqtidagi xatolar uchun, qavsni moslashtirish, a tuzatuvchi va algebraik qadam. Uning talabalar uchun qulay xususiyatlari ko'p sonli "til darajalarini" qo'llab-quvvatlashni o'z ichiga oladi (Boshlang'ich talaba, O'rta darajadagi talaba va boshqalar). Shuningdek, u kutubxonani qo'llab-quvvatlaydi va murakkab tahlil rivojlangan dasturchilar uchun vositalar. Bundan tashqari, modulga yo'naltirilgan dasturlash modul brauzeri bilan qo'llab-quvvatlanadi, kontur ko'rinishi, o'rnatilgan sinov va qamrov o'lchovlar va qayta ishlash qo'llab-quvvatlash. Bu "Yordam paneli" deb nomlangan keng giper bog'langan yordam tizimiga kontekstga sezgir kirish imkoniyatini beradi.

DrRacket uchun mavjud Windows, macOS, Unix va Linux bilan X oyna tizimi va barcha ushbu platformalarda dasturlar xuddi shunday harakat qiladi.

Kod misollari

Mana ahamiyatsiz narsa Salom Dunyo dastur:

#lang raketka"Salom Dunyo!"

Ushbu dasturni ishga tushirish natijani hosil qiladi:

"Salom Dunyo!"


Mana biroz ahamiyatsiz dastur:

DrRacket-da ko'rsatilgandek, ushbu dasturning natijasi
#lang raketka(talab qilish 2htdp / rasm)(ruxsat bering sierpinski ([n 8])  (agar (nolmi? n)    (uchburchak 2 'qattiq 'qizil)    (ruxsat bering ([t (sierpinski (- n 1))])      (muzlash (yuqorida t (yonida t t))))))

Racket veb-saytidan olingan ushbu dastur a Sierpinski uchburchagi, 8-chuqurlikka joylashtirilgan.

Dan foydalanish #lang direktivasi, manba fayli Raketning turli lahjalarida yozilishi mumkin. Typed Racket-dagi faktorial dasturga misol, a statik ravishda terilgan Raketning shevasi:

#lang yozilgan / raketka(: haqiqat (Butun son -> Butun son))(aniqlang (haqiqat n)  (agar (nolmi? n) 1 (* n (haqiqat (- n 1)))))

Ilovalar va amaliy foydalanish

Da asosga ega bo'lishdan tashqari dasturlash tili nazariyasi, Raketka ishlab chiqarish tizimlarida umumiy maqsadli til sifatida foydalanish uchun ishlab chiqilgan. Shunday qilib, Racket tarqatish tizimlari va tarmoq dasturlash, veb-ishlab chiqish,[58] asosiy operatsion tizim uchun bir xil interfeys, dinamik xorijiy funktsiya interfeysi,[59] bir nechta lazzatlari doimiy iboralar, lexer / analizator generatorlari,[57] mantiqiy dasturlash va to'liq GUI ramka.

Raketka tijorat tili uchun foydali bo'lgan bir nechta xususiyatlarga ega, ular orasida Windows, macOS va Unix ostida mustaqil bajariladigan fayllarni yaratish qobiliyati mavjud. profiler va tuzatuvchi ga kiritilgan birlashgan rivojlanish muhiti (IDE) va a birlik sinovi ramka.

Raket tijorat loyihalari va veb-ilovalar uchun ishlatilgan. Ajoyib misol Hacker yangiliklari ishlaydigan veb-sayt Ark, Racket-da ishlab chiqilgan. Yaramas it uni bir nechta video o'yinlarida skript tili sifatida ishlatgan.[60]

Raketka o'quvchilarni algebra o'yinlarini dizayni orqali o'rgatish uchun ishlatiladi Bootstrap dasturi.[61]

Adabiyotlar

  1. ^ "Raketka v7.9". Raketka blogi. 2 noyabr 2020 yil. Olingan 2 noyabr 2020.
  2. ^ Tobin-Xoxstadt, Sem; Jerar, Sage; Dyuk, Joel; Flatt, Metyu; Dastur erkinligini himoya qilish; Chestek, Pamela (2019-11-15). "Racket-ning relicensing harakatlarini yakunlash". Olingan 2019-12-27.
  3. ^ "DrRacket fayllari". Olingan 21 iyul 2019. Racket dastur fayli uchun standart fayl kengaytmasi ".rkt" dir. ".Ss", ".scm" va ".sch" kengaytmalari ham tarixiy mashhurdir.
  4. ^ Striklend, T.S .; Fellesisen, Matthias (2010). "DLS 2010: Birinchi toifadagi sinflar uchun shartnomalar" (PDF).
  5. ^ Bonnaire-serjant, Ambrose (2012). Clojure uchun amaliy ixtiyoriy turdagi tizim (Tezis). G'arbiy Avstraliya universiteti.
  6. ^ "Planet2 savollari".
  7. ^ "Rust bibliografiyasi".
  8. ^ Sperber, Maykl; Dybvig, R. Kent; Flatt, Metyu; Van Straaten, Anton; va boshq. (2007 yil avgust). "Qayta ko'rib chiqilgan6 Algoritmik til sxemasi (R6RS) bo'yicha hisobot ". Sxema Boshqaruv qo'mitasi. Olingan 2011-09-13.
  9. ^ a b Felleyzen, M .; Findler, RB .; Flatt, M.; Krishnamurti, S .; Barzilay, E .; Makkarti, J .; Tobin-Xoxstadt, S. (2015). "Raketka manifesti" (PDF). Dasturlash tillarida erishilgan yutuqlar bo'yicha birinchi sammit materiallari: 113–128.
  10. ^ "Raketka va sxema dialektlari". Olingan 2011-08-15.
  11. ^ "Raketka xush kelibsiz". Olingan 2019-05-15.
  12. ^ a b Flatt; Findler; Krishnamurti; Felleyzen (1999). Operatsion tizim sifatida tillarni dasturlash (yoki, Lisp O'g'lining qasosi). Funktsional dasturlash bo'yicha xalqaro konferentsiya.
  13. ^ a b v Findler; Klementlar; Flanagan; Flatt; Krishnamurti; Stekler; Felleyzen (2001). "DrScheme: sxema uchun dasturlash muhiti" (PDF). Funktsional dasturlash jurnali.
  14. ^ Fellezen; Findler; Flatt; Krishnamurthi (2004). "The TeachScheme! Loyihasi: har bir talaba uchun hisoblash va dasturlash". Informatika ta'limi jurnali.
  15. ^ "Umumiy ma'lumot". Dizayn bo'yicha dastur. Olingan 2011-08-17.
  16. ^ a b v Flatt, M.; Findler, R. B .; Felleisen, M. (2006). "Sinflar, aralashmalar va belgilar bilan sxema" (PDF). Dasturlash tillari va tizimlari bo'yicha Osiyo simpoziumi.
  17. ^ a b Flatt, M.; Felleisen, M. (1998). "Birlik: issiq tillar uchun ajoyib modullar". Dasturlash tilini loyihalash va amalga oshirish.
  18. ^ a b v d Tobin-Xoxstadt, S.; St-Amur, V .; Kalpepper, R.; Flatt, M.; Felleisen, M. (2011). "Tillar kutubxona sifatida" (PDF). Dasturlash tilini loyihalash va amalga oshirish.
  19. ^ Felleyzen, Matias; Findler, Robert Bryus; Flatt, Metyu; Krishnamurti, Shriram; Barzilay, Eli; Makkarti, Jey; Tobin-Xoxstadt, Sem (2018). "Dasturlashtiriladigan dasturlash tili". ACM aloqalari. 61 (3): 62–71. doi:10.1145/3127323. S2CID  3887010.
  20. ^ "Raketka: dasturiy ta'minot uchun litsenziya". Olingan 2015-10-20.
  21. ^ Benson, kichik Brent V. (26-28 oktyabr 1994). "libscheme: C kutubxonasi sifatida sxema". Santa Fe, NM da yozilgan. Juda yuqori darajadagi tillar bo'yicha USENIX simpoziumi materiallari. Berkli, Kaliforniya: USENIX assotsiatsiyasi. 7-19 betlar. ISBN  978-1880446652. Olingan 7 iyul 2013.
  22. ^ a b v "Raketka grafik qatlamini tiklash". 2010-12-08. Olingan 2017-12-11.
  23. ^ Klements, J .; Flatt, M.; Felleisen, M. (2001). "Algebraik stepperni modellashtirish" (PDF). Dasturlash tillari bo'yicha Evropa simpoziumi.
  24. ^ a b v "Raketka yadrosi to'g'risida eslatmalar". Arxivlandi asl nusxasi 2013-05-23. Olingan 2012-04-15.
  25. ^ Flatt, M. (2002). "Composable and Compilable Makros". Funktsional dasturlash bo'yicha xalqaro konferentsiya.
  26. ^ "PLT Scheme version 4.0". 2008-06-12. Arxivlandi asl nusxasi 2013-05-23. Olingan 2012-08-07.
  27. ^ "PLT sxemasidan raketka". Racket-lang.org. Olingan 2011-08-17.
  28. ^ "Raketka 5.2". PLT, Inc. 2011-11-09. Olingan 2012-06-16.
  29. ^ "Submodullar". 2012-06-03. Olingan 2012-08-07.
  30. ^ "Raketka 5.3". PLT, Inc. 2012-08-07. Olingan 2012-08-07.
  31. ^ "Raketka 5.3.1". PLT, Inc. 2012-11-07. Olingan 2012-11-07.
  32. ^ "Raketka 6.0". PLT, Inc. 2014-02-26. Olingan 2016-02-23.
  33. ^ "Chez-reket holati: 2018 yil yanvar". 2018-01-05. Arxivlandi asl nusxasi 2018-04-13 kunlari. Olingan 2018-04-13.
  34. ^ "Chez sxemasi bo'yicha qurilish raketi (tajriba hisoboti)" (PDF). 2019-08-01. Olingan 2019-07-25.
  35. ^ "Racket 7.5 versiyasi". Packt Hub. Olingan 2019-11-28.
  36. ^ "Raketka v7.5". Raketka | Blog. Olingan 2019-11-28.
  37. ^ Flatt, M.; Yu, G.; Findler, R. B .; Felleisen, M. (2007). "Ishlab chiqarishni dasturlash muhitiga ajratilgan va kompozitsion boshqaruvni qo'shish" (PDF). Funktsional dasturlash bo'yicha xalqaro konferentsiya.
  38. ^ "Shartnomalar".
  39. ^ "Iplar".
  40. ^ "Fyuchers".
  41. ^ "Joylar".
  42. ^ Flatt, Metyu (2012). "Tillarni reketda yaratish". ACM aloqalari. Olingan 2012-04-08.
  43. ^ Findler, R. B .; Felleisen, M. (2002). "Yuqori darajadagi funktsiyalar bo'yicha shartnomalar" (PDF). Funktsional dasturlash bo'yicha xalqaro konferentsiya.
  44. ^ Matthews, J. (2006). "PLaneT bilan komponentlarni joylashtirish: buni qayerda xohlaysiz?". Sxema va funktsional dasturlash bo'yicha seminar.
  45. ^ "Racket paket tizimi va Planet".
  46. ^ Flatt, Metyu (2002). "Kompozitsiyali va kompilyatsiya qilinadigan makrolar, buni qachon xohlaysiz?" (PDF). Funktsional dasturlash bo'yicha xalqaro konferentsiya.
  47. ^ Flatt, Culpepper, Darais, Findler, Birgalikda ishlaydigan makrolar; Vaqtni biriktirish, qisman kengaytirish va ta'riflash kontekstlari
  48. ^ Tobin-Xoxstadt, S.; Felleisen, M. (2008). "Tipik sxemani tuzish va amalga oshirish". Tillarni dasturlash tamoyillari.
  49. ^ Barzilay, E .; Clements, J. (2005). "Barcha mashaqqatlarsiz dangasalik: dars berish uchun dangasa va qattiq tillarni birlashtirish". Ta'limdagi funktsional va deklarativ dasturlash.
  50. ^ "Hackett dasturlash tili". Aleksis Kingning blogi. Olingan 16 iyun 2019.
  51. ^ Piret ekipaji (2011 yil 24-may). "Piret kodi yoki Piret dasturlash tili asoslari". Piret. Olingan 16 iyun 2019.
  52. ^ "Dasturlash va dasturlash tillari". Index of /. 20 sentyabr 2017 yil. Olingan 16 iyun 2019.
  53. ^ Flatt, M.; Barzilay, E .; Findler, R. B. (2009). "Scribble: Hujjatlarning maxsus vositalarida kitobni yopish". Funktsional dasturlash bo'yicha xalqaro konferentsiya.
  54. ^ Findler, R. B .; Flatt, M. (2004). "Slayd-shou: funktsional taqdimotlar". Funktsional dasturlash bo'yicha xalqaro konferentsiya.
  55. ^ Felleyzen, M .; Findler, R. B .; Flatt, M.; Krishnamurthi, S. (2009). "Funktsional kiritish-chiqarish tizimi (yoki birinchi kurs bolalariga qiziqarli)" (PDF). Funktsional dasturlash bo'yicha xalqaro konferentsiya.
  56. ^ Felleyzen, M .; Findler, R. B .; Flatt, M.; Krishnamurthi, S. (2004). "Informatika o'quv dasturining tuzilishi va talqini" (PDF). Funktsional dasturlash jurnali. 14 (4): 365–378. doi:10.1017 / S0956796804005076.
  57. ^ a b "Parser Tools: lex va yacc uslubida tahlil qilish". Olingan 2011-08-16.
  58. ^ a b Krishnamurti, Xopkins; Makkarti; Graunke; Pettyjon; Fellezen (2007). "PLT sxemasi veb-serverini amalga oshirish va ulardan foydalanish" (PDF). Yuqori darajali va ramziy dasturlash jurnali. 20 (4): 431–460. doi:10.1007 / s10990-007-9008-y. S2CID  17731194.
  59. ^ Barzilay, E .; Orlovskiy, D. (2004). "PLT sxemasi uchun chet el interfeysi" (PDF). Sxema va funktsional dasturlash.
  60. ^ "O'yinni rivojlantirishda funktsional mzScheme DSL'lari". Olingan 2012-05-08.
  61. ^ "Bootstrap". bootstrapworld.org. Olingan 2015-08-11.

Qo'shimcha o'qish

Tashqi havolalar