Herkese selamlar TurkHackTeam ailesi,
Bu konuda sizlere kendi programlama dilimizi nasıl yaparız Python ile göstereceğim. Özellikle kendi programlama dilini yapmak isteyen veya merakı olan kişilere az çok yardımcı olacağını düşünüyorum. Bu konuda çok fazla detaya girmeden sadece temel mantık nedir onu göstereceğim. Seri halinde devam edecek ve düşük - orta seviye .tht uzantılı kendi dilimizi diğer konularda adım adım yapacağız. Şimdiden iyi okumalar.

Şimdi sıkıcı teorik konuları anlatmak yerine direkt olarak uygulamalı şekilde göstereceğim. Bu dilde ekrana komut yazdırma, değişken atama, toplama ve programı kapatma komutlarını ekleyeceğiz.
Yani oluşturacağımız dil şu komutları destekleyecek:
Bunlar sadece örnek. İlerisinde daha da detaya gireceğiz
Şimdi biz bu komutları girince python bizim bu komutlarımızı algılayacak. Şimdi iki adet dosya oluşturuyoruz. Bunlar:
kelime.tht - dil.py Fark ettiyseniz kendi özel uzantımızı da oluşturduk. Python dosyamızı buna göre ayarlayacağız ve .tht uzantılı kodlarımızı okuyacak. Şimdi aşağıya kodumuzu yazalım:
Kodumuzu yazdık. Şimdi terminalde proje dizininde şu komutu çalıştırıyoruz:
Çıktımız:
İşte kendi dilimizi oluşturduk bile. Bunun üstüne eklemeler yaparak dili daha da geliştireceğiz. Ama diğer konularda
Şimdilik sadece ekrana yazdırma, değişken atama, toplama ve program sonlandırma komutlarını ekledik.
Konumuzun sonuna geldik. Dil oluşturma konumuza kaldığımız yerden devam edeceğiz. Burada sadece temel mantığı oturtmanız adına konuyu çok uzatmadım. Ama ileriki konularda düşük - orta seviye kendi .tht uzantılı dilimizi oluşturuyor olacağız. Bir sonraki konuda görüşmek üzere, kendinize iyi bakın

Bu konuda sizlere kendi programlama dilimizi nasıl yaparız Python ile göstereceğim. Özellikle kendi programlama dilini yapmak isteyen veya merakı olan kişilere az çok yardımcı olacağını düşünüyorum. Bu konuda çok fazla detaya girmeden sadece temel mantık nedir onu göstereceğim. Seri halinde devam edecek ve düşük - orta seviye .tht uzantılı kendi dilimizi diğer konularda adım adım yapacağız. Şimdiden iyi okumalar.

Şimdi sıkıcı teorik konuları anlatmak yerine direkt olarak uygulamalı şekilde göstereceğim. Bu dilde ekrana komut yazdırma, değişken atama, toplama ve programı kapatma komutlarını ekleyeceğiz.
Yani oluşturacağımız dil şu komutları destekleyecek:
Kod:
# yorum satırı
yaz "Merhaba Başkan"
degisken a = 10
degisken b = 20
yaz "Toplam sonucu:"
topla a b
yaz "Direkt sayılarla toplama:"
topla 5 15
yaz "Program bitti."
Bunlar sadece örnek. İlerisinde daha da detaya gireceğiz
kelime.tht - dil.py Fark ettiyseniz kendi özel uzantımızı da oluşturduk. Python dosyamızı buna göre ayarlayacağız ve .tht uzantılı kodlarımızı okuyacak. Şimdi aşağıya kodumuzu yazalım:
Python:
# dil.py dosyası
import re
# Değişkenleri saklamak için bir sözlük (bellek)
variables = {}
def run_line(line):
"""
Bu fonksiyon tek bir satırı alır,
komut türüne göre yorumlar ve çalıştırır.
"""
line = line.strip() # Boşlukları temizliyoruz
# Boş veya yorum satırlarını atlamasını sağlıyoruz
if not line or line.startswith("#"):
return
# EKRANA YAZMA KOMUTUNU OLUŞTURUYORUZ
if line.startswith("yaz "):
expr = line[4:].strip()
# Eğer tırnak içindeyse string olarak yazdırıyoruz
if expr.startswith('"') and expr.endswith('"'):
print(expr[1:-1])
# Eğer değişkense bellekte buluyor ve yazdırıyoruz
elif expr in variables:
print(variables[expr])
# Değilse, olduğu gibi yazdırıyoruz
else:
print(expr)
return
# DEĞİŞKEN TANIMLAMAYI OLUŞTURUYORUZ
if line.startswith("degisken "):
match = re.match(r"degisken (\w+) = (.+)", line)
if match:
name, value = match.groups()
# Eğer sayıysa float olarak atamasını yapıyoruz
try:
variables[name] = float(value)
except ValueError:
# Tırnaklıysa metin olarak sakla
variables[name] = value.strip('"')
return
# TOPLAMA KOMUTUMUZU OLUŞTURUYORUZ
if line.startswith("topla "):
parts = line.split()
if len(parts) != 3:
print("Hata: topla komutu 2 argüman ister.")
return
a, b = parts[1], parts[2]
# Eğer değişkense, bellekteki değerini almasını sağlıyoruz
a_val = variables[a] if a in variables else a
b_val = variables[b] if b in variables else b
try:
sonuc = float(a_val) + float(b_val)
print(sonuc)
except ValueError:
print("Hata: topla komutu sadece sayılarla çalışır.")
return
# Tanınmayan komutlarda hata mesajı veriyoruz
print(f"Hata: Komut tanınmadı → {line}")
def run_file(filename):
"""
Bu fonksiyon bir dosyayı okur ve her satırı çalıştırır.
"""
with open(filename, "r", encoding="utf-8") as f:
for line in f:
run_line(line)
# Ana çalıştırıcı
if __name__ == "__main__":
run_file("kelime.tht")
Kodumuzu yazdık. Şimdi terminalde proje dizininde şu komutu çalıştırıyoruz:
Kod:
python dil.py
Çıktımız:
Kod:
Merhaba Başkan
Toplam sonucu:
30.0
Direkt sayılarla toplama:
20.0
Program bitti.
İşte kendi dilimizi oluşturduk bile. Bunun üstüne eklemeler yaparak dili daha da geliştireceğiz. Ama diğer konularda
Konumuzun sonuna geldik. Dil oluşturma konumuza kaldığımız yerden devam edeceğiz. Burada sadece temel mantığı oturtmanız adına konuyu çok uzatmadım. Ama ileriki konularda düşük - orta seviye kendi .tht uzantılı dilimizi oluşturuyor olacağız. Bir sonraki konuda görüşmek üzere, kendinize iyi bakın


