Kā izveidot programmēšanas valodu: 15 soļi (ar attēliem)

Satura rādītājs:

Kā izveidot programmēšanas valodu: 15 soļi (ar attēliem)
Kā izveidot programmēšanas valodu: 15 soļi (ar attēliem)

Video: Kā izveidot programmēšanas valodu: 15 soļi (ar attēliem)

Video: Kā izveidot programmēšanas valodu: 15 soļi (ar attēliem)
Video: Clean your CPU heatsink and fans or fry your PC! #technology #tech #computer #gaming #shorts 2024, Maijs
Anonim

Daudziem cilvēkiem ir grūtības vai vilšanās saistībā ar programmēšanas valodām, kuras viņi izmanto katru dienu. Daži vēlas, lai lietas tiktu apstrādātas abstraktāk, bet citiem nepatīk tādu funkciju ieviešana, kuras viņi vēlētos, lai tās būtu “standarta”. Neatkarīgi no tā, vai esat IT profesionālis vai vienkārši hobijs, daudzas reizes var rasties vēlme izveidot jaunu programmēšanas valodu.

Soļi

Programmēšanas valodas izveide 1. darbība
Programmēšanas valodas izveide 1. darbība

1. solis. Iepazīstieties ar tehnoloģiju

Jūs nevarat izveidot programmēšanas valodu, ja nezināt, kā lietot datoru.

Izveidojiet programmēšanas valodu 2. darbība
Izveidojiet programmēšanas valodu 2. darbība

2. solis. Iepazīstieties ar terminoloģiju

Sastādītāji bieži izmanto nepazīstamu terminoloģiju. Pirms turpināt, izlasiet kompilatorus. Noteikti ziniet visu, kas jums jāzina.

Programmēšanas valodas izveide 3. darbība
Programmēšanas valodas izveide 3. darbība

3. solis. Izlemiet, kāda problēma tiek atrisināta jūsu valodā

Vai tā risina domēnam raksturīgu problēmu, vai tā ir universāla valoda?

Programmēšanas valodas izveide 4. darbība
Programmēšanas valodas izveide 4. darbība

4. solis. Padomājiet par savas valodas semantiku un tās jēdzieniem

  • Vai atļausit tiešu rādītāju piekļuvi vai ne?
  • Kādi ir jūsu valodas datu veidi?
  • Vai tā ir statiska vai dinamiska valoda?
  • Kāds ir jūsu atmiņas modelis? Vai izmantosiet atkritumu savācēju vai manuālu atmiņas pārvaldību? (Ja izmantojat atkritumu savācēju, sagatavojieties tā uzrakstīšanai vai pielāgojiet esošo savai valodai.)
  • Kā rīkoties ar vienlaicīgumu? Vai jūs izmantosit vienkāršu pavedienu/bloķēšanas modeli vai kaut ko sarežģītāku, piemēram, Lindu vai aktiera modeli? (Tā kā mūsdienās datoriem ir vairāki kodoli.)
  • Vai valodā ir iestrādātas primitīvas funkcijas vai viss nāks no bibliotēkas?
  • Kāda ir jūsu valodas paradigma vai paradigmas? Funkcionāls? Objektorientēts? Prototips (piemēram, JavaScript)? Uz aspektu orientēts? Uz veidni orientēts? Vai arī kaut kas pilnīgi jauns?
  • Kā jūsu valoda saskarsies ar esošajām bibliotēkām un valodām (galvenokārt C)? Šis punkts ir svarīgs, ja veidojat domēnam raksturīgu valodu.
  • Visbeidzot, uz dažām atbildēm uz šiem jautājumiem tiks atbildēts otrajā solī, un tas palīdzēs jums atbildēt uz nākamo soli.
Programmēšanas valodas izveide 5. darbība
Programmēšanas valodas izveide 5. darbība

5. solis. Iedomājieties dažus konkrētus uzdevumus, kurus kāds vēlētos, lai varētu veikt ar jūsu valodu

Piemēram, "viņi var vēlēties vadīt robotu sekot līnijai" vai "viņi var vēlēties tajā izveidot salīdzinoši pārnēsājamas darbvirsmas programmas" vai "viņi var vēlēties ar to izveidot tīmekļa lietojumprogrammas".

Programmēšanas valodas izveide 6. darbība
Programmēšanas valodas izveide 6. darbība

6. solis. Eksperimentējiet ar sintakses idejām (valodas tekstu) iepriekš minētajiem piemēriem

Esiet piesardzīgs, lai saglabātu savu valodu bezkonteksta valodas kategorijā vai kaut ko tajā. Jūsu parsētāja ģenerators, un jūs to novērtēsit vēlāk

Programmēšanas valodas izveide 7. darbība
Programmēšanas valodas izveide 7. darbība

7. solis. Izrakstiet sintaksei formālu gramatiku

Programmēšanas valodas izveide 8. darbība
Programmēšanas valodas izveide 8. darbība

8. solis. Izlemiet, vai valoda tiks tulkota vai apkopota

Tas nozīmē, ka interpretētajā pasaulē jūsu lietotājs parasti rediģēs jūsu programmu redaktorā un palaidīs to tieši tulkā; apkopotajā pasaulē jūsu lietotājs rediģēs jūsu programmu, apkopos to, saglabās iegūto izpildāmo failu kaut kur un palaidīs to.

Programmēšanas valodas izveide 9. darbība
Programmēšanas valodas izveide 9. darbība

9. solis. Uzrakstiet priekšējā gala skeneri un parsētāju vai atrodiet rīku, kas jums to palīdz

Padomājiet arī par to, kā kompilators/tulks brīdinās lietotāju par kļūdainām programmām un sintakses kļūdām

Programmēšanas valodas izveide 10. darbība
Programmēšanas valodas izveide 10. darbība

10. solis. Izmantojiet parsētāja informāciju, lai rakstītu objekta kodu vai starpposma attēlojumu

Lieciet parsētājam izveidot AST, pēc tam izveidojiet objekta kodu no AST, izmantojot trīs adreses kodu vai tā lielo brāli SSA, pēc tam izveidojiet simbolu tabulu, lai definētu savas funkcijas, globālos mainīgos utt.

Atkarībā no valodas, iespējams, vēlēsities arī izveidot virtuālas rādītāju tabulas vai informācijas tabulas savām klasēm (lai atbalstītu pārdomas vai RTTI)

Programmēšanas valodas izveide 11. darbība
Programmēšanas valodas izveide 11. darbība

11. solis Uzrakstiet izpildītāju vai kodu ģeneratoru, kas visu sasaistīs

Programmēšanas valodas izveide 12. darbība
Programmēšanas valodas izveide 12. darbība

12. solis. Lai pārbaudītu valodu, uzrakstiet daudzas pārbaudes programmas

Jūs vēlaties izveidot programmas, kas uzsver jūsu formālās gramatikas slogu, lai redzētu, ka kompilators pieņem visu, kas ir jūsu definīcijā, un noraida visu, kas ir ārpus tās

Programmēšanas valodas izveide 13. darbība
Programmēšanas valodas izveide 13. darbība

13. solis. Apsveriet, kā lietotājs atkļūdos savas programmas

Programmēšanas valodas izveide 14. darbība
Programmēšanas valodas izveide 14. darbība

14. solis. Ja jūsu valodā tiek izmantota standarta bibliotēka, jūs vēlaties to uzrakstīt

Kopā ar atkritumu savācēju vai citām darbības laika funkcijām, ja jums tas nepieciešams.

Konkrēti, ja rakstāt kompilatoru, jums būs nepieciešams kods, kuru operētājsistēma izpildīs, lai sāktu lietotāja koda darbību (piemēram, piešķirot visus globālos mainīgos)

Programmēšanas valodas izveide 15. darbība
Programmēšanas valodas izveide 15. darbība

15. solis. Publicējiet savu valodu kopā ar tās specifikāciju un dažiem piemēriem, ko tajā varat darīt

Neaizmirstiet dokumentēt, kā jūs varat integrēties ar esošajām bibliotēkām, valodām un kā izmantot izpildlaika funkcijas un/vai standarta bibliotēku

Video - izmantojot šo pakalpojumu, daļa informācijas var tikt kopīgota ar pakalpojumu YouTube

Padomi

  • Sāciet, izstrādājot savu valodu un nerakstiet nekādus kodus, kamēr neesat apmierināts un esat atbildējis uz visiem (vai vairumam) jautājumiem vai problēmām, kas saistītas ar jūsu dizainu, jo dizainu ir vieglāk mainīt agrāk nekā vēlāk.
  • Ziniet savu kompilatora/tulka mērķa platformu (operētājsistēmu un bibliotēkas), galu galā jūs to izmantosit un ar to manipulēsit.

Brīdinājumi

  • Padomājiet, vai jums tiešām ir nepieciešama jauna valoda un kas jūsu valodā ir jauns, kas nav citās valodās (tas var būt funkciju kombinācija vai viena funkcija).
  • Valodas ir grūti rakstīt, ja nezināt, ko darāt. Tas prasa arī daudz prakses.
  • Gatavojieties kādu laiku veltīt valodas noformēšanai, jo, sastādot kompilatoru un nokārtojot dizaina punktu, jums nebūs iespējas mainīt valodu.
  • Nemēģiniet savas iezīmes apvienot vairāku valodu savienībā, piemēram, sakot, ka jūsu valoda būs valodu X, valodas Y un valodas Z savienība. Vēsture ir parādījusi, ka šādā veidā radītas valodas nekad nesniegs panākumus, vai visi programmētu PL/1, nevis kaut ko, pamatojoties uz C.

Ieteicams: