Etkileyici Gücü Vikipedi tarafından şöyle tanımlanır:
Bu sayfaya tekrar okuyalım. Dikkat edilmesi gereken ilk şeylerden biri, "programlama dili" değil "dil" yazmasıdır ve örneklerinin çoğu programlama dili değildir, örneğin verilen ilk örnek, her ikisi de ontoloji olan OWL2 EL ve OWL2 RL'nin karşılaştırılmasıdır. duujjil.
Biri kavramı programlama dillerine uygulayabilir, fakat aynı zamanda kalıp eşleşen dilleri, işaretleme dillerini, sorgu dillerini, görsel stil sayfası dillerini, düzenli ifadeleri (ve başvurdukları tüm normal dilleri) vb. Hatta çoğu zaman gayrı resmi olarak yapılan, ancak doğal dil işleme ile ilgili sorunları göz önüne alındığında daha ciddi olan İngilizce gibi doğal dillerin ifade gücüne bile değinilebilir.
"Fikirler", makineyle iletişim kurabileceğimiz şeylere (işlemler, yapılar, algoritmalar vb.) Atıfta bulunuyor mu? Yoksa diliyle diğer insanlara yakalanıp iletilebilecek “insan” kavramlarını mı ifade ediyor?
Bu dilde neyin ifade edilebileceğini, tamamen kendi başına bir şey olarak kabul eder.
Örneğin, (örneklerim boyunca javascript'i kullanacağım, çünkü sorunuzun bildiğiniz dillerden biri olduğunu gösteriyor) javascript ifadesini göz önünde bulundurur:
var x = 3 + 4;
Bu, 3 ve 4 değerlerinin toplamının hesaplandığını ve x
verilen ad alanı kapsamındaki bir etiketle ilişkilendirilen değerin temsil edildiğini gösterir .
Dünyadaki tüm bilgisayarları yok edip bu kodu bir kağıda yazarsak, javascriptte de yine aynı anlama geldiğini; böyle bir kodu hiçbir şey üzerinde çalıştıramazdık, ancak dilin soyut tanımı hala konuşabileceğimiz bir şey.
Bu sinsi görünebilir, ancak dillerin gerçekte, gerçek bilgisayarları düşünmeden soyutlanabilecek sebepler olması oldukça önemlidir. Birincisi, pratikte henüz pratik olmayan bilgisayar dillerinin teorik noktaları hakkında düşünen insanlar, bizi bugün bulunduğumuz yere getiren şeylerden biri; Bilgisayarlar bilgisayar bilimlerine ihtiyaç duyar, ancak bilgisayar bilimleri bilgisayarlara ihtiyaç duymaz, sadece bir hesaplama fikridir.
Elbette, gerçek dünyadaki bilgisayarları kullanıyoruz ve bu günlerde teorik olarak tartışan birkaç uzman yerine, pratikte kullanan pek çok insan var. Bağlandığınız sayfa diyor ki:
Etkileyici güç terimi çeşitli anlamlarla kullanılabilir. Bu dilde anlaşılabilir fikirlerin bir ölçüsü olabilir:
İlk anlam, dillerin biçimsel tanımları ve biçimsel dil teorisi, matematiksel mantık ve süreç cebiri gibi anlamlarıyla ilgilenen matematik ve mantık alanlarında egemendir.
Gayrı resmi tartışmalarda, terim genellikle ikinci anlama veya her ikisine de atıfta bulunur. Programlama dilleri tartışılırken genellikle durum budur. Terimin bu gayri resmi kullanımının resmileştirilmesi için çaba gösterilmiştir.
Terimin bu iki kullanımından, ilkinin pratik etkisi, yalnızca bilgisayara aktarılabilecekler ile ilgilidir .
İkincisi, hem okuma hem de yazmadaki insan anlayışı ile daha fazla ilgilidir, ancak bunun derecesi, gayrı resmidir ve bu nedenle katı bir şekilde tanımlanmadıklarından kullanımlar arasında çok fazla farklılık gösterir.
Örneğin, JavaScript gibi bir dil aldıysak ve değişken gibi değişken isimlere garip bir kısıtlama koyarsak, değişken gibi bir alt çizgi önceliğinin 8 basamaklı bir sayı olması gerekir, eşleştirme /^_[0-9]{8}$/
, anlamlı gücünü kaybeder miyiz?
Resmi tanım gereğince, anlamlı bir güç kaybetmedik: 100.000.000 değişkenle sınırlıyız, ancak gerçekten ihtiyaç duymamız halinde yeni oluşturulan isim alanı içinde daha fazla değişken tutacak nesneler oluşturarak bunun üstesinden gelebiliriz. Bugün javascript ile yazılmış herhangi bir program bu yeni formda yeniden yazılabildiği için eşit derecede açıklayıcıdırlar.
Gayri resmi tanım gereği, bazılarını kaybettik, ancak ne kadar gayrı resmi olduğumuza bağlı, ne kadar değişken olacağına bağlı, çünkü yine bir gayri resmi kullanım için "kural" ın ne olduğunu söyleyemezsiniz. Küçük bir miktar kaybettik diyebiliriz, çünkü aynı isim alanında 100.000.000'den fazla değişkene sahip programlar basit bir değiştirmenin ötesinde yeniden yazılmalıdır. Yine daha gayrı resmi bir kullanım, bu tür değişken olmayan isimlerin insani kapsamlı üzerindeki zihinsel etkisine atıfta bulunacaktır.
Ayrıca, insanların , dilin kesinlikle bir parçası olmayan şeyleri gayrı resmi olarak değerlendireceklerini belirtmek de önemlidir. Javascript’teki yaratılışından bugüne kadar olan değişiklikleri düşünün.
En resmi tanım gereği, etkileyicilikte oldukça bir değişiklik oldu; sonuçta, başlamak için Turing tamamlandı.
Daha resmi olmayan bir tanımla, dizi manipülasyonu, istisnaların ele alınması ve (belki de en önemlisi) düzenli ifadelerin dahil edilmesi gibi bazı şeylerde çok daha anlamlı hale geldi. Bunlar, daha önce javascript'te yapılamayan hiçbir şeyi yapmazlar, ancak genellikle birkaç satırda bir şeyler yapabilirler ve daha sonra javascript1'de yazmak için kilobaytlık kod alan ve daha uzun süre çalışacak olan bir sonraki işlem süresi.
Yine çok daha resmi olmayan bir tanımla, javascript’in tarayıcılarda ilk kez kullandığı değişiklik (form girişlerinin değerlerini değiştirebilme document.write
, sayfa ilk kez ayrıştırılırken ve yeni bir yere taşınırken veya tarihe geçmiş veya geri gider) başka bir şey yok) bugün (sunucu çağrılarından elde edilen veriler de dahil olmak üzere sayfadaki herhangi bir şeyi değiştirebilme kabiliyeti) kesinlikle büyüktür, ancak çoğu javascript ile değil, nesne modelleri ve API'lerle ilgili olsa da dil yerine kullanılabilir (örneğin, IE'deki vbscript, bu değişikliklerden eşit oranda yararlanmıştır).
Aklıma göre, bu son kullanım gerçekten doğru olmayacak kadar gayrı resmidir, ancak gayri resmi tanımlardaki sorun budur.
Biçimsel tanımla, gerçekten hiç daha etkileyici hale gelmedi.