yazan: Şadi Evren ŞEKER
Üst programlama, mevcut programlama yaklaşımlarının üzerinde yeni bir yaklaşım geliştirerek programlama yapan programlama yapma anlamına gelir. Yani üst programlama ile bir program geliştirilirken, alt programlama yöntemleri harmanlanır ve kod üretilir.
Bu yaklaşımın ilginç kullanımlarından birisi de kendi kendini programlayan programların üretilmesidir. Yani üretilen kod, başka bir programa ait olmayıp bizzat üreticinin kendi parçası olmaktadır. Her iki ihtimalde de, üst programlama ile kast edilen, programın bir program üretmesidir.
Üst programın yazıldığı dile üst dil, alt programların her birisine de nesne dil veya nesne program adı verilmektedir. üst dil ile nesne dilin aynı olması durumunda, yani kendi kendini programlama durumunda buna da yansıma (relection) adı verilir.
Günümüzde en çok kullanılan örneklerine sunucu tarafı betiklerde (server side scripting) rastlanmaktadır. Örneğin PHP ile yazılan aşağıdaki örnek kodda 10 kere ekrana “bilgisayar.kavramlari.com” basan kodu üreten örnek kod verilmiştir.
echo "";
for($i=0;$i<10;$i++){
echo "
bilgisayarkavramlari.com
“;
}
echo “”;
?>
yukarıdaki kodda HTML kodunu da kapsayan satırlar üretilmiş ve PHP dili ile HTML dilinde kod üretilmiş olmuştur.
Diğer sık kullanım alanlarından birisi ise derleyici teorisinde (compiler theory) sık kullanılan araçlar olan lex ve yacc programlarıdır. Bu programlar aracılığı ile bir programlama dili üretmek oldukça basittir ve bu programları kullanacak olan kişi örneğin yacc için basitçe tanımı yapılmış bir parçalama ağacını (parse tree) girdi olarak vermekte bu ağaçtan ise bir C kodu üretilmektedir.