Yazılım dili nasıl yapılır?

Yeni Python ogreniyorum demis. Emeklemeye baslamadan 10.000 metre olimpik kosu yapmak istiyorum demekle ayni şey bu. Su an buna benzer guncel dillerin evrimlestigi yapilar daha cok bir isle ugrasip buna ek zamanini harcayan kisilerin ortaya cikardiklari oluyor. Yeni bir dil olusturmak marifet degil ki. Bir mantigi yok. Ihtiyaca gore dil evrim gecirir veya sifirdan farkli bir dil olusturulabilir. Pat diye ben yeni dil yapacagim demenin bir anlami yok.

Keşke üstteki mesajlarımı okusan ona göre cevap versen? Ben orada başka biri ile yazılım hakkında söylediği bir şeye cevap olarak verdim. Konu sahibine havuza ayağını soktun diye kendini poseidon ilan etme dedim.
 
Merhaba arkadaşlar, kısa süre önce Python öğrenmeye başladım ve kendi yazılım dilimi yapmak istiyorum. Nasıl yapabilirim mantığı ne?
Scripting bir programlama dilinin(Python'da scripting bir programlama dilidir.) mantığı şu şekilde işler:

Lexer, komutları tokenize eder. Şunun gibi: "print(4 - 2) => [("print", Function), ("(", LeftPar), (4, Int), ("-", minus), (2, Int), (")", RightPar)]

Parser, tokenleri Abstract Syntax Tree'ye çevirir. Şunun gibi: [("print", Function), ("(", LeftPar), (4, Int), ("-", minus), (2, Int), (")", RightPar)] =>
(print)​
|​
(4)​
--------------(+)--------------​
(2)​

Daha sonra isteğe bağlı olarak Abstract Syntax Tree, Abstract Action Tree'ye çevrilir:
(print): function​
|​
(4): Int​
--------------(+)--------------​
(2): Int​

Daha sonra Abstract Syntax/Action Tree'yi çalıştırabilecek bir runner yazılır.

Eğer compile edilebilir bir dil yazmak istiyorsanız Tree'yi makine diline çevirip bilgisayara işlem yaptırmanız gerekiyor. Örn: C, C++.

Bunun gibi bir projem olmuştu. Şuan geliştirmiyorum.
 
Son düzenleme:
Çocuk işin mantığını merak ediyor. Ben de çocukken oyuncak arabalarımı söker, acaba içinde gerçekten bir de motor var mı diye bakardım. Sonra araba çöp olurdu. Çocuklar hep bir şeyin içini görmek ister.

itch.io da "Nil" ve "Neil" isimli derleyici (yorumlayıcı) ve programlama dillerini bulabilirsiniz. C#(.NET) ve Lua ile geliştirilmişler. İnceleyebilirsiniz ve deneyebilirsiniz. Syntax olarak Pascal andırıyorlar.
 

Geri
Yukarı