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.