Program dönüşümü - Program transformation
Bir program, bir dönüşüm , bir alan bir işlemdir , bilgisayar programı ve bir programı oluşturur. Çoğu durumda, dönüştürülmüş programın özgün ile semantik olarak eşdeğer olması, belirli bir biçimsel semantiğe göre olması gerekir ve daha az durumda dönüşümler, orijinalden öngörülebilir şekillerde anlamsal olarak farklılık gösteren programlarla sonuçlanır.
Dönüşümler manuel olarak gerçekleştirilebilirken , gerekli dönüşümlerin spesifikasyonlarını uygulayan bir program dönüşüm sistemi kullanmak genellikle daha pratiktir . Program dönüşümleri , program metnini temsil eden derleyici veri yapılarını (örneğin soyut sözdizimi ağaçları ) değiştiren otomatik prosedürler olarak belirtilebilir veya parametreli kaynak kodu parçalarını temsil eden modeller veya şablonlar kullanılarak daha uygun şekilde belirtilebilir.
Kaynak kodu dönüştürme sistemleri için pratik bir gereklilik , bir programlama dilinde yazılmış programları etkin bir şekilde işleyebilmeleridir . Bu genellikle, kaynak kodu ayrıştırma , kod yapılarının dahili program temsilleri oluşturma, program sembollerinin anlamı, yararlı statik analizler ve dönüştürülmüş program temsillerinden geçerli kaynak kodunun yeniden oluşturulması dahil olmak üzere ilgili programlama dili için tam bir ön uç entegrasyonunu gerektirir. . Geleneksel diller ( Java , C ++ , PHP vb.) İçin yeterli ön uçlar oluşturma ve entegre etme sorunu , bu tür dillerin karmaşıklığından dolayı program dönüştürme sisteminin kendisinin oluşturulmasıyla aynı zorlukta olabilir. Geniş çapta yararlı olması için, bir dönüşüm sistemi birçok hedef programlama dilini idare edebilmeli ve bu tür ön uçları belirlemek için bazı araçlar sağlamalıdır.
Anlamsal eşdeğerliğin genelleştirilmesi, program iyileştirme kavramıdır : bir program, orijinal programın sona erdiği tüm başlangıç durumlarında sona ererse bir diğerinin iyileştirilmesidir ve bu tür her durum için olası bir son durumda sona erdirilmesi garanti edilir. orijinal program. Başka bir deyişle, bir programın iyileştirilmesi , orijinal programdan daha tanımlı ve daha belirleyicidir . İki program birbirinin iyileştirilmişse, o zaman programlar eşdeğerdir.
Ayrıca bakınız
- Program dönüştürme sistemlerinin listesi
- Metaprogramlama
- Program sentezi
- Kaynaktan kaynağa derleyici
- Kaynak kodu üretimi
- Dönüşüm dili
- Dönüşümsel dilbilgisi
- Dinamik yeniden derleme
Referanslar
Dış bağlantılar
- Program dönüştürme Wiki
- Program dönüştürme teorisi ve pratiği üzerine makaleler
- Dönüşüm Teknolojileri Bibliyografyası
- DMS Software Reengineering Toolkit : DSL'ler ve modern (C ++, Java, ...) ve eski (COBOL, RPG) bilgisayar dilleri için bir Program Dönüşüm Sistemi
- Spoon : Java kaynak kodunu analiz etmek, dönüştürmek, yeniden yazmak ve dönüştürmek için bir kitaplık. Güçlü analiz ve dönüştürme API'si ile iyi tasarlanmış bir AST oluşturmak için kaynak dosyalarını ayrıştırır.
- JavaParser : JavaParser kitaplığı size Java kodunuzun Özet Sözdizimi Ağacı sağlar. AST yapısı daha sonra Java kodunuzla kolay ve programlı bir şekilde çalışmanıza olanak tanır.