Qanday qilib dasturlash tilini yaratish mumkin: 15 qadam (rasmlar bilan)

Mundarija:

Qanday qilib dasturlash tilini yaratish mumkin: 15 qadam (rasmlar bilan)
Qanday qilib dasturlash tilini yaratish mumkin: 15 qadam (rasmlar bilan)

Video: Qanday qilib dasturlash tilini yaratish mumkin: 15 qadam (rasmlar bilan)

Video: Qanday qilib dasturlash tilini yaratish mumkin: 15 qadam (rasmlar bilan)
Video: 10 yillik noutbukni qayta tiklash, tashlandiq kompyuterni tiklash 2024, Aprel
Anonim

Ko'p odamlar har kuni ishlatadigan dasturlash tillarida qiyinchiliklarga duch kelishadi. Ba'zilar narsalarning mavhumroq hal qilinishini xohlaydilar, boshqalari esa "standart" bo'lgan funktsiyalarni amalga oshirishni yoqtirmaydilar. Siz IT mutaxassisi bo'lasizmi yoki shunchaki havaskor bo'lasizmi, ko'p hollarda siz yangi dasturlash tilini yaratishni xohlaysiz.

Qadamlar

Dasturlash tilini yaratish 1 -qadam
Dasturlash tilini yaratish 1 -qadam

1 -qadam. Texnologiya bilan tanishib chiqing

Agar siz kompyuterdan foydalanishni bilmasangiz, siz dasturlash tilini yarata olmaysiz.

Dasturlash tilini yaratish 2 -qadam
Dasturlash tilini yaratish 2 -qadam

2 -qadam. Terminologiya bilan tanishing

Tuzuvchi yozuvchilar ko'pincha notanish terminlardan foydalanadilar. Davom etishdan oldin kompilyatorlar haqida o'qing. Siz bilishingiz kerak bo'lgan hamma narsani bilganingizga ishonch hosil qiling.

Dasturlash tilini yaratish 3 -qadam
Dasturlash tilini yaratish 3 -qadam

3 -qadam. Sizning tilingiz qanday muammoni hal qilayotganini hal qiling

Bu domenga xos muammoni hal qilyaptimi yoki umumiy maqsadli tilmi?

Dasturlash tilini yaratish 4 -qadam
Dasturlash tilini yaratish 4 -qadam

4 -qadam. Tilingizning semantikasi va uning tushunchalari haqida o'ylang

  • Siz ko'rsatgichga to'g'ridan -to'g'ri kirishga ruxsat berasizmi yoki yo'qmi?
  • Sizning tilingizning ma'lumot turlari qanday?
  • Bu statik yoki dinamik tilmi?
  • Sizning xotira modelingiz qanday? Siz axlat yig'uvchi yoki qo'lda xotira boshqaruvidan foydalanmoqchimisiz? (Agar siz axlat yig'uvchidan foydalansangiz, uni yozishga tayyorlang yoki mavjudini o'z tilingizga moslashtiring.)
  • Parallellikni qanday hal qilish kerak? Siz oddiy tishli/qulflash modelini yoki Linda yoki aktyor modeli kabi murakkabroq narsani ishlatmoqchimisiz? (Hozirgi vaqtda kompyuterlarda bir nechta yadro mavjud.)
  • Tilga o'rnatilgan ibtidoiy funktsiyalar bormi yoki hamma narsa kutubxonadan bo'ladimi?
  • Sizning tilingizning paradigmasi yoki paradigmasi nima? Funktsionalmi? Ob'ektga yo'naltirilganmi? Prototip (JavaScript kabi)? Aspektga yo'naltirilganmi? Andoza yo'naltirilganmi? Yoki butunlay yangi narsa?
  • Sizning tilingiz mavjud kutubxonalar va tillar (asosan C) bilan qanday aloqada bo'ladi? Agar siz domenga xos til yaratayotgan bo'lsangiz, bu nuqta muhim.
  • Nihoyat, bu savollarga berilgan javoblarning bir qismi ikkinchi bosqichda javob beradi va keyingi bosqichga javob berishga yordam beradi.
Dasturlash tilini yaratish 5 -qadam
Dasturlash tilini yaratish 5 -qadam

5 -qadam. Kimdir sizning tilingiz bilan bajarishni xohlaydigan ba'zi aniq vazifalarni o'ylab ko'ring

Masalan, "ular robotni yo'nalish bo'yicha yo'naltirishni xohlashlari mumkin" yoki "ular nisbatan portativ ish stoli dasturlarini yaratishni xohlashlari mumkin" yoki "ular bilan veb -ilovalar yaratishni xohlashlari mumkin".

Dasturlash tilini yaratish 6 -qadam
Dasturlash tilini yaratish 6 -qadam

6 -qadam. Yuqoridagi misollar uchun sintaksis g'oyalari (til matni) bilan tajriba o'tkazing

Tilingizni kontekstsiz tillar toifasida yoki uning ichida saqlanishiga ehtiyot bo'ling. Sizning tahlilchi generatoringiz va buni keyinroq qadrlaysiz

Dasturlash tilini yaratish 7 -qadam
Dasturlash tilini yaratish 7 -qadam

Qadam 7. Sintaksis uchun rasmiy grammatikani yozing

Dasturlash tilini yaratish 8 -qadam
Dasturlash tilini yaratish 8 -qadam

Qadam 8. Til talqin qilinadimi yoki kompilyatsiya qilinadimi, qaror qabul qiling

Bu shuni anglatadiki, talqin qilingan dunyoda sizning foydalanuvchi odatda dasturingizni tahrirlovchida tahrir qiladi va uni to'g'ridan -to'g'ri tarjimonda ishga tushiradi; Kompilyatsiya qilingan dunyoda, sizning foydalanuvchi sizning dasturingizni tahrir qiladi, kompilyatsiya qiladi, natijada bajariladigan faylni saqlaydi va ishga tushiradi.

Dasturlash tilini yaratish 9 -qadam
Dasturlash tilini yaratish 9 -qadam

Qadam 9. Old skaner va tahlilni yozing yoki sizga yordam beradigan vositani toping

Shuningdek, sizning kompilyatoringiz/tarjimoningiz foydalanuvchini noto'g'ri dasturlar va sintaksik xatolar haqida qanday ogohlantirishi haqida o'ylang

Dasturlash tilini yaratish 10 -qadam
Dasturlash tilini yaratish 10 -qadam

Qadam 10. Ob'ekt kodini yoki oraliq tasvirni yozish uchun tahlilchi ma'lumotidan foydalaning

Tahlilchidan AST yaratishga ruxsat bering, so'ngra uchta manzil kodi yoki uning katta akasi SSA yordamida AST -dan ob'ekt kodini yarating, so'ngra funktsiyalaringizni, global o'zgaruvchilarni va boshqalarni aniqlash uchun belgilar jadvalini yarating.

Bundan tashqari, sizning tilingizga qarab, siz o'z darslaringiz uchun virtual ko'rsatgich jadvallarini yoki ma'lumot jadvallarini yaratishni xohlashingiz mumkin (aks ettirish yoki RTTIni qo'llab -quvvatlash uchun)

Dasturlash tilini yaratish 11 -qadam
Dasturlash tilini yaratish 11 -qadam

Qadam 11. Hammasini bir -biriga bog'laydigan ijrochi yoki kod generatorini yozing

Dasturlash tilini yaratish 12 -qadam
Dasturlash tilini yaratish 12 -qadam

12 -qadam. Tilni sinab ko'rish uchun ko'plab test dasturlarini yozing

Sizning kompilyatoringiz sizning ta'rifingiz ichidagi hamma narsani qabul qilishini va uning tashqarisidagi hamma narsani rad etishini ko'rish uchun siz rasmiy grammatika yukini yuklaydigan dasturlar yaratmoqchisiz

Dasturlash tilini yaratish 13 -qadam
Dasturlash tilini yaratish 13 -qadam

Qadam 13. Foydalanuvchi o'z dasturlarini qanday disk raskadrovka qilishini ko'rib chiqing

Dasturlash tilini yaratish 14 -qadam
Dasturlash tilini yaratish 14 -qadam

14 -qadam. Agar sizning tilingiz standart kutubxonadan foydalansa, siz uni yozishni xohlaysiz

Agar kerak bo'lsa, axlat yig'uvchi yoki boshqa ishlash vaqti bilan birga.

Xususan, agar siz kompilyator yozsangiz, foydalanuvchi kodini ishga tushirish uchun operatsion tizim bajaradigan kod kerak bo'ladi (masalan, barcha global o'zgaruvchilarni ajratish)

Dasturlash tilini yaratish 15 -qadam
Dasturlash tilini yaratish 15 -qadam

15 -qadam. O'z tilingizni, unga spetsifikatsiya va unda nima qilishingiz mumkinligi haqidagi ba'zi misollarni nashr eting

Qanday qilib mavjud kutubxonalar, tillar bilan ishlash va ishlash vaqti va/yoki standart kutubxonadan qanday foydalanish mumkinligini hujjatlashtirishni unutmang

Video - bu xizmatdan foydalanib, ba'zi ma'lumotlar YouTube bilan bo'lishishi mumkin

Maslahatlar

  • O'zingizning tilingizni loyihalashdan boshlang va hech qanday kod yozmang, siz qoniqmaguningizcha va sizning dizayningiz bilan bog'liq barcha savollarga yoki muammolarga javob bermaguningizcha, dizaynni kechroq o'zgartirish osonroq.
  • Tarjimon/tarjimon uchun maqsadli platformani (operatsion tizim va kutubxonalarni) biling, axir siz undan foydalanasiz va uni boshqarasiz.

Ogohlantirishlar

  • Agar sizga haqiqatan ham yangi til kerak bo'lsa va boshqa tillarda mavjud bo'lmagan tilingiz nimasi bo'lsa, o'ylab ko'ring (Bu xususiyatlarning kombinatsiyasi yoki bitta xususiyat bo'lishi mumkin).
  • Agar nima qilayotganingizni bilmasangiz, tillarni yozish qiyin. Bu ham ko'p mashqlarni talab qiladi.
  • Til dizayniga biroz vaqt sarflashga tayyorlaning, chunki siz kompilyatorni yozib, dizayn nuqtasini o'tib bo'lgach, tilingizni o'zgartirish imkoniga ega bo'lmaysiz.
  • O'zingizning xususiyatlaringizni bir necha tillar ittifoqiga asoslashga urinmang, masalan, sizning tilingiz X, Y va Z tillarining ittifoqi bo'ladi, deyish mumkin. Tarix shuni ko'rsatdiki, shunday yaratilgan tillar hech qachon muvaffaqiyat qozonmaydi, yoki hamma C ga asoslangan biror narsa o'rniga PL/1 ni dasturlashi mumkin.

Tavsiya: