Dil odaklı programlama - Language-oriented programming
Programlama paradigmaları |
---|
|
Dil yönelimli programlama ( LOP ), "dilin" nesneler, modüller ve bileşenlerle aynı statüye sahip bir yazılım yapı taşı olduğu ve genel amaçlı programlama dillerinde sorunları çözmek yerine , programcının bir veya iki tane oluşturduğu bir yazılım geliştirme paradigmasıdır. önce sorun için daha fazla alana özgü diller ve sorunu bu dillerde çözer. Dil yönelimli programlama ilk olarak Martin Ward'ın Yazılım - Kavramlar ve Araçlar , Cilt 15, No.4, pp 147-161, 1994'te yayınlanan 1994 tarihli Dil Yönelimli Programlama makalesinde ayrıntılı olarak açıklanmıştır .
konsept
Dil yönelimli programlama kavramı, gereksinimleri kullanıcının terimleriyle yakalama ve ardından gereksinimler ile uygulama arasındaki eşlemenin mümkün olduğunca doğrudan olması için, kullanıcının açıklamalarına mümkün olduğunca eş biçimli bir uygulama dili oluşturmaya çalışma yaklaşımını benimser . Bu eşbiçimliliğin yakınlığının bir ölçüsü, gereksinimlerde tek başına bir değişikliği uygulamak için gereken düzenleme işlemlerinin sayısı olarak tanımlanan dilin "fazlalığı"dır. Yeni dili uygulamak için en iyi dilin ne olduğu önceden varsayılmaz . Bunun yerine geliştirici, bilgi akışlarının analiziyle oluşturulan seçenekler arasından seçim yapabilir - hangi bilgilerin edinildiği, yapısının ne olduğu, ne zaman alındığı, kimden alındığı ve bununla ne yapıldığı.
Gelişim
Raket (programlama dili) desteği dil odaklı programlama için tasarlanmıştır. JetBrains MPS , Kermeta veya Xtext gibi diğer dil çalışma tezgahı araçları , DSL'leri ve dil yönelimli programlamayı tasarlamak ve uygulamak için araçlar sağlar.
Ayrıca bakınız
- Dilbilgisi odaklı programlama
- diyalektik
- Etki alanına özgü dil
- Genişletilebilir programlama
- kasıtlı programlama
- homoikoniklik
Referanslar
Dış bağlantılar
- Dil Odaklı Programlama: Sonraki Programlama Paradigması Sergey Dmitriev'in konuyu daha da araştıran makalesi.
- MetaLisp'te Dil Odaklı Programlama Gyuri Lajos'un tezi 1992 Leeds Üniversitesi Sistem, Tree- Meta'yı çalıştıran aynı Yukarıdan Aşağıya Ayrıştırma Dili algoritmasını kullandı.