Bir proqramlaşdırma dili necə yaradılır: 15 addım (şəkillərlə)

Mündəricat:

Bir proqramlaşdırma dili necə yaradılır: 15 addım (şəkillərlə)
Bir proqramlaşdırma dili necə yaradılır: 15 addım (şəkillərlə)

Video: Bir proqramlaşdırma dili necə yaradılır: 15 addım (şəkillərlə)

Video: Bir proqramlaşdırma dili necə yaradılır: 15 addım (şəkillərlə)
Video: Как сделать стяжку с шумоизоляцией в квартире. #18 2024, Aprel
Anonim

Bir çox insanlar hər gün istifadə etdikləri proqramlaşdırma dillərində çətinlik çəkirlər. Bəziləri işlərin daha mücərrəd şəkildə həll edilməsini istəyir, digərləri isə 'standart' olmaq istədikləri xüsusiyyətləri tətbiq etməyi sevmirlər. İT mütəxəssisi və ya sadəcə bir hobbi olmağınızdan asılı olmayaraq, dəfələrlə özünüzü yeni bir proqramlaşdırma dili yaratmaq istəyə bilərsiniz.

Addımlar

Proqramlaşdırma dili yaradın Adım 1
Proqramlaşdırma dili yaradın Adım 1

Addım 1. Texnologiya ilə tanış olun

Kompüterdən necə istifadə edəcəyinizi bilmirsinizsə, proqramlaşdırma dili yarada bilməzsiniz.

Proqramlaşdırma Dili Yaradın 2
Proqramlaşdırma Dili Yaradın 2

Addım 2. Terminologiya ilə tanış olun

Tərtibatçılar tez -tez tanımadıqları terminologiyadan istifadə edirlər. Davam etməzdən əvvəl tərtibçilər haqqında oxuyun. Bilməli olduğunuz hər şeyi bildiyinizə əmin olun.

Proqramlaşdırma dili yaradın Adım 3
Proqramlaşdırma dili yaradın Adım 3

Addım 3. Dilinizin hansı problemi həll etdiyinə qərar verin

Domenə aid bir problemi həll edir, yoxsa ümumi məqsədli bir dildir?

Proqramlaşdırma dili yaradın Adım 4
Proqramlaşdırma dili yaradın Adım 4

Addım 4. Dilinizin semantikasını və onun anlayışlarını düşünün

  • Birbaşa göstərici girişinə icazə verəcəksiniz, ya yox?
  • Dilinizin hansı növ məlumatları var?
  • Statik və ya dinamik bir dildir?
  • Yaddaş modeliniz nədir? Zibil toplayıcıdan və ya əl yaddaş idarəçiliyindən istifadə edəcəksiniz? (Bir zibil toplayıcıdan istifadə edirsinizsə, birini yazmağa hazırlayın və ya mövcud olanı dilinizə uyğunlaşdırın.)
  • Paralelliyi necə idarə edəcəksiniz? Sadə bir diş açma/bağlama modeli və ya Linda və ya aktyor modeli kimi daha mürəkkəb bir şey istifadə edəcəksiniz? (Bu gündən bəri kompüterlərdə birdən çox nüvə var.)
  • Dilə daxil edilmiş ibtidai funksiyalar varmı, yoxsa hər şey kitabxanadan gələcək?
  • Dilinizin paradiqması və ya paradiqması nədir? Funksional? Obyekt yönümlü? Prototip (JavaScript kimi)? Aspekt yönümlü? Şablon yönümlüdür? Yoxsa tamamilə yeni bir şey?
  • Diliniz mövcud kitabxanalar və dillərlə necə əlaqə quracaq (əsasən C)? Bir sahəyə xüsusi bir dil qurursanız, bu nöqtə vacibdir.
  • Nəhayət, bu sualların cavablarından bəziləri ikinci addımla cavablandırılacaq və növbəti addıma cavab verməyinizə kömək edəcək.
Proqramlaşdırma dili yaradın 5 -ci addım
Proqramlaşdırma dili yaradın 5 -ci addım

Addım 5. Kiminsə sizin dilinizlə yerinə yetirmək istədiyi bəzi xüsusi vəzifələri düşünün

Məsələn, 'bir robotu bir xətti izləməyə yönəltmək istəyə bilər' və ya 'nisbi olaraq portativ masaüstü proqramları yaratmaq istəyə bilər' və ya 'onunla birlikdə veb tətbiqləri yaratmaq istəyə bilər'.

Proqramlaşdırma dili yaradın Adım 6
Proqramlaşdırma dili yaradın Adım 6

Addım 6. Yuxarıdakı nümunələr üçün sintaksis fikirləri (dilin mətni) ilə sınaq keçirin

Dilinizi kontekstsiz dil kateqoriyasında və ya içərisində saxlamaq üçün diqqətli olun. Parser generatorunuz və bunu daha sonra qiymətləndirəcəksiniz

Proqramlaşdırma dili yaradın 7 -ci addım
Proqramlaşdırma dili yaradın 7 -ci addım

Addım 7. Sintaksis üçün rəsmi bir qrammatika yazın

Proqramlaşdırma dili yaradın Adım 8
Proqramlaşdırma dili yaradın Adım 8

Addım 8. Dilin şərh ediləcəyinə və ya tərtib ediləcəyinə qərar verin

Təfsir olunan dünyada istifadəçinizin ümumiyyətlə proqramınızı bir redaktorda düzəldəcəyini və birbaşa tərcüməçi üzərində işləyəcəyini; tərtib edilən dünyada istifadəçiniz proqramınızı redaktə edəcək, tərtib edəcək, nəticədə icra olunan faylları bir yerdə saxlayacaq və işlədəcək.

Proqramlaşdırma dili yaradın Adım 9
Proqramlaşdırma dili yaradın Adım 9

Addım 9. Ön uç skanerini və analizini yazın və ya bu işdə sizə kömək edəcək bir vasitə tapın

Ayrıca, tərtibçinizin/tərcüməçinizin istifadəçinizi səhv proqramlar və sintaksis səhvləri barədə necə xəbərdar edəcəyini düşünün

Proqramlaşdırma dili yaradın Adım 10
Proqramlaşdırma dili yaradın Adım 10

Addım 10. Obyekt kodunu və ya aralıq təsviri yazmaq üçün ayrıştırıcı məlumatlarından istifadə edin

Ayrıştırıcının bir AST yaratmasını, sonra üç ünvan kodundan və ya böyük qardaşı SSA -dan istifadə edərək AST -dən obyekt kodunuzun yaradılmasını, sonra funksiyalarınızı, qlobal dəyişənlərinizi və s.

Ayrıca, dilinizdən asılı olaraq, dərsləriniz üçün virtual əks göstərici cədvəlləri və ya məlumat cədvəlləri də yaratmaq istəyə bilərsiniz (əks və ya RTTI -ni dəstəkləmək üçün)

Proqramlaşdırma dili yaradın Adım 11
Proqramlaşdırma dili yaradın Adım 11

Addım 11. Hər şeyi bir -birinə bağlayacaq icraçı və ya kod generatoru yazın

Proqramlaşdırma dili yaradın Adım 12
Proqramlaşdırma dili yaradın Adım 12

Addım 12. Dili yoxlamaq üçün bir çox test proqramı yazın

Tərtibçinizin tərifinizin içərisində olan hər şeyi qəbul etdiyini və xaricində olan hər şeyi rədd etdiyini görmək üçün rəsmi qrammatik yükünüzü vurğulayan proqramlar yaratmaq istəyirsiniz

Proqramlaşdırma dili yaradın Addım 13
Proqramlaşdırma dili yaradın Addım 13

Addım 13. İstifadəçinin öz proqramlarını necə düzəldəcəyini düşünün

Proqramlaşdırma dili yaradın Adım 14
Proqramlaşdırma dili yaradın Adım 14

Addım 14. Diliniz standart bir kitabxana istifadə edirsə, onu yazmaq istəyəcəksiniz

Zibil toplayıcısı və ya ehtiyacınız varsa digər iş vaxtı xüsusiyyətləri ilə birlikdə.

Xüsusilə, bir tərtibçi yazsanız, istifadəçi kodunu işə salmaq üçün (məsələn, bütün qlobal dəyişənləri ayırmaq üçün) əməliyyat sisteminin icra edəcəyi koda ehtiyacınız olacaq

Proqramlaşdırma dili yaradın Adım 15
Proqramlaşdırma dili yaradın Adım 15

Addım 15. Dilinizin xüsusiyyətlərini və nələr edə biləcəyinizə dair bəzi nümunələri dərc edin

Mövcud kitabxanalarla, dillərlə necə inteqrasiya edə biləcəyinizi və iş vaxtı xüsusiyyətlərindən və/və ya standart kitabxanadan necə istifadə edəcəyinizi sənədləşdirməyi unutmayın

Video - Bu xidmətdən istifadə edərək bəzi məlumatlar YouTube ilə paylaşıla bilər

İpuçları

  • Dizaynınızı əvvəlcədən dəyişdirmək daha asan olduğundan dizaynınızla əlaqəli bütün suallara və ya problemlərə (və ya əksəriyyətinə) cavab verməyincə dilinizi dizayn edərək başlayın və heç bir kod yazmayın.
  • Tərtibçi/tərcüməçi üçün hədəf platformanızı (əməliyyat sistemi və kitabxanaları) bilin, axı bundan istifadə edib manipulyasiya edəcəksiniz.

Xəbərdarlıqlar

  • Həqiqətən yeni bir dilə ehtiyacınız olub olmadığını və digər dillərdə olmayan dilinizdə nələrin olduğunu düşünün (Xüsusiyyətlərin birləşməsi və ya tək bir xüsusiyyət ola bilər).
  • Nə etdiyinizi bilmirsinizsə, dillər yazmaq çətindir. Bunun üçün də çox təcrübə lazımdır.
  • Dil tərtibatına bir az vaxt sərf etməyə hazırlaşın, çünki tərtibçini yazdıqdan və dizayn nöqtəsini keçdikdən sonra dilinizi dəyişdirmək şansınız olmayacaq.
  • Dilinizin X dilinin, Y dilinin və Z dilinin birliyi olacağını söyləmək kimi xüsusiyyətlərinizi bir neçə dildə birləşdirməyə çalışmayın. Tarix bizə belə bir şəkildə yaradılan dillərin heç vaxt uğur qazana bilməyəcəyini göstərdi. ya da hər kəs C əsaslı bir şey yerinə PL/1 proqramlaşdıracaq.

Tövsiyə: