Programlama Dili Nasıl Oluşturulur: 15 Adım (Resimlerle)

İçindekiler:

Programlama Dili Nasıl Oluşturulur: 15 Adım (Resimlerle)
Programlama Dili Nasıl Oluşturulur: 15 Adım (Resimlerle)

Video: Programlama Dili Nasıl Oluşturulur: 15 Adım (Resimlerle)

Video: Programlama Dili Nasıl Oluşturulur: 15 Adım (Resimlerle)
Video: Masaüstü Bilgisayar Nasıl Temizlenir ( Detaylı Temizlik ) Fan Bakımı ve Termal Macun Yenileme 2024, Mayıs
Anonim

Birçok insan, her gün kullandıkları programlama dilleriyle ilgili zorluklar veya hayal kırıklıkları yaşar. Bazıları işlerin daha soyut bir şekilde ele alınmasını isterken, diğerleri 'standart' olmasını istedikleri özellikleri uygulamaktan hoşlanmazlar. İster bir BT uzmanı olun, ister sadece bir hobici olun, çoğu zaman kendinizi yeni bir programlama dili oluşturmak isterken bulabilirsiniz.

adımlar

Bir Programlama Dili Oluşturun Adım 1
Bir Programlama Dili Oluşturun Adım 1

Adım 1. Teknolojiye aşina olun

Bilgisayar kullanmayı bilmiyorsanız bir programlama dili oluşturamazsınız.

Bir Programlama Dili Oluşturun Adım 2
Bir Programlama Dili Oluşturun Adım 2

Adım 2. Terminolojiye aşina olun

Derleyici yazarları genellikle tanıdık olmayan terminoloji kullanır. Devam etmeden önce derleyicileri okuyun. Bilmeniz gereken her şeyi bildiğinizden emin olun.

Bir Programlama Dili Oluşturun Adım 3
Bir Programlama Dili Oluşturun Adım 3

Adım 3. Dilinizin hangi sorunu çözdüğüne karar verin

Alana özgü bir sorunu mu ele alıyor yoksa genel amaçlı bir dil mi?

Bir Programlama Dili Oluşturun 4. Adım
Bir Programlama Dili Oluşturun 4. Adım

Adım 4. Dilinizin anlamını ve onun kavramlarını düşünün

  • Doğrudan işaretçi erişimine izin verecek misiniz, vermeyecek misiniz?
  • Dilinizin veri türleri nelerdir?
  • Statik mi yoksa dinamik bir dil mi?
  • Hafıza modeliniz nedir? Çöp toplayıcı mı yoksa manuel bellek yönetimi mi kullanacaksınız? (Çöp toplayıcı kullanıyorsanız, bir tane yazmaya hazırlanın veya mevcut olanı kendi dilinize uyarlayın.)
  • Eşzamanlılığı nasıl ele alacaksınız? Basit bir iplik geçirme/kilitleme modeli mi kullanacaksınız yoksa Linda veya oyuncu modeli gibi daha karmaşık bir şey mi kullanacaksınız? (Çünkü günümüzde bilgisayarlar birden fazla çekirdeğe sahiptir.)
  • Dile gömülü ilkel işlevler var mı yoksa her şey bir kütüphaneden mi gelecek?
  • Dilinizin paradigması veya paradigmaları nedir? İşlevsel mi? Nesne odaklı? Prototip (JavaScript gibi)? Görünüş odaklı mı? Şablon odaklı mı? Yoksa tamamen yeni bir şey mi?
  • Diliniz mevcut kütüphaneler ve dillerle (çoğunlukla C) nasıl arayüz oluşturacak? Alana özel bir dil oluşturuyorsanız bu nokta önemlidir.
  • Son olarak, bu soruların cevaplarından bazıları ikinci adımda cevaplanacak ve bir sonraki adıma cevap vermenize yardımcı olacak.
Bir Programlama Dili Oluşturun Adım 5
Bir Programlama Dili Oluşturun Adım 5

Adım 5. Birinin sizin dilinizle gerçekleştirmek isteyebileceği bazı belirli görevleri düşünün

Örneğin, 'bir robotu bir çizgiyi takip etmesi için yönlendirmek isteyebilirler' veya 'içinde nispeten taşınabilir masaüstü programları oluşturmak isteyebilirler' veya 'bununla web uygulamaları oluşturmak isteyebilirler'.

Bir Programlama Dili Oluşturun Adım 6
Bir Programlama Dili Oluşturun Adım 6

Adım 6. Yukarıdaki örnekler için sözdizimi fikirleri (dilin metni) ile deney yapın

Dilinizi bağlamdan bağımsız dil kategorisinde veya onun içinde bir yerde tutmaya dikkat edin. Ayrıştırıcı oluşturucunuz ve bunu daha sonra takdir edeceksiniz

Bir Programlama Dili Oluşturun Adım 7
Bir Programlama Dili Oluşturun Adım 7

Adım 7. Sözdizimi için resmi bir dilbilgisi yazın

Bir Programlama Dili Oluşturun Adım 8
Bir Programlama Dili Oluşturun Adım 8

Adım 8. Dilin yorumlanıp yorumlanmayacağına veya derleneceğine karar verin

Anlamı, yorumlanan dünyada, kullanıcınız programınızı genellikle bir düzenleyicide düzenler ve doğrudan yorumlayıcıda çalıştırır; Derlenmiş dünyada, kullanıcınız programınızı düzenleyecek, derleyecek, ortaya çıkan yürütülebilir dosyayı bir yere kaydedecek ve çalıştıracaktır.

Bir Programlama Dili Oluşturun Adım 9
Bir Programlama Dili Oluşturun Adım 9

Adım 9. Ön uç tarayıcıyı ve ayrıştırıcıyı yazın veya bu konuda size yardımcı olacak bir araç bulun

Ayrıca derleyicinizin/yorumlayıcınızın kullanıcınızı hatalı programlar ve sözdizimi hataları hakkında nasıl uyaracağını da düşünün

Bir Programlama Dili Oluşturun Adım 10
Bir Programlama Dili Oluşturun Adım 10

Adım 10. Nesne kodunu veya bir ara gösterimi yazmak için ayrıştırıcı bilgilerini kullanın

Ayrıştırıcının bir AST oluşturmasını sağlayın, ardından üç adres kodunu veya büyük kardeşi SSA'yı kullanarak AST'den nesne kodunuzu oluşturun, ardından işlevlerinizi, global değişkenlerinizi vb. tanımlamak için bir sembol tablosu oluşturun.

Ayrıca, dilinize bağlı olarak, sınıflarınız için (yansıma veya RTTI'yi desteklemek için) sanal işaretçi tabloları veya bilgi tabloları oluşturmak isteyebilirsiniz

Bir Programlama Dili Oluşturun Adım 11
Bir Programlama Dili Oluşturun Adım 11

Adım 11. Her şeyi birbirine bağlayacak yürütücü veya kod oluşturucuyu yazın

Bir Programlama Dili Oluşturun Adım 12
Bir Programlama Dili Oluşturun Adım 12

Adım 12. Dili test etmek için birçok test programı yazın

Derleyicinizin tanımınızın içindeki her şeyi kabul ettiğini ve onun dışındaki her şeyi reddettiğini görmek için biçimsel dilbilginizin yükünü vurgulayan programlar oluşturmak istiyorsunuz

Bir Programlama Dili Oluşturun Adım 13
Bir Programlama Dili Oluşturun Adım 13

Adım 13. Kullanıcının kendi programlarında nasıl hata ayıklayacağını düşünün

Bir Programlama Dili Oluşturun Adım 14
Bir Programlama Dili Oluşturun Adım 14

Adım 14. Diliniz standart bir kitaplık kullanıyorsa, onu yazmak isteyeceksiniz

Gerekirse bir çöp toplayıcı veya diğer çalışma zamanı özellikleriyle birlikte.

Özellikle, bir derleyici yazarsanız, kullanıcı kodunu çalıştırmaya başlamak için işletim sisteminin yürüteceği koda ihtiyacınız olacaktır (örneğin, tüm global değişkenleri tahsis etmek)

Bir Programlama Dili Oluşturun Adım 15
Bir Programlama Dili Oluşturun Adım 15

Adım 15. Dilinizi, bunun belirtimi ve içinde neler yapabileceğinize dair bazı örneklerle birlikte yayınlayın

Mevcut kitaplıklar, diller ile nasıl entegre edebileceğinizi ve çalışma zamanı özelliklerini ve/veya standart kitaplığı nasıl kullanacağınızı belgelemeyi unutmayın

Video - Bu hizmet kullanılarak YouTube ile bazı bilgiler paylaşılabilir

İpuçları

  • Dilinizi tasarlayarak başlayın ve tatmin olana ve tasarımınızla ilgili tüm (veya çoğu) soruları veya sorunları yanıtlayana kadar herhangi bir kod yazmayın, çünkü tasarımı daha sonra değiştirmek daha kolay olduğundan.
  • Derleyiciniz/tercümanınız için hedef platformunuzu (işletim sistemi ve kütüphaneler) bilin, sonuçta onu kullanacak ve manipüle edeceksiniz.

Uyarılar

  • Gerçekten yeni bir dile ihtiyacınız olup olmadığını ve dilinizin diğer dillerde olmayan yeniliklere sahip olup olmadığını düşünün (Bir özellikler kombinasyonu veya tek bir özellik olabilir).
  • Ne yaptığınızı bilmiyorsanız dil yazmak zordur. Aynı zamanda çok pratik gerektirir.
  • Derleyiciyi yazdıktan ve tasarım noktasını geçtikten sonra dilinizi değiştirme şansınız olmayacağından, dil tasarımında biraz zaman geçirmeye hazırlanın.
  • Dilinizin X dili, Y dili ve Z dilinin bir birleşimi olacağını söylemek gibi özelliklerinizi birkaç dilin birleşimine dayandırmaya çalışmayın. Tarih bize göstermiştir ki bu şekilde yaratılan diller asla başarıya ulaşamaz, ya da herkes C'ye dayalı bir şey yerine PL/1'i programlayacaktı.

Önerilen: