Programlama dilinin diğer dillerden oluştuğunu nasıl söyleyebilirim?


22

İngilizce dilinde, programlama dilinin diğer programlama dilleriyle derlenebileceğini nasıl söyleyebilirim?

Örnek Haxe olabilir . Web sitesinde dil "Multiplatform" olarak tanımlanmaktadır:

Multiplatform: Haxe, hızlı derleyicisiyle tüm popüler programlama platformlarına derlenebilir - JavaScript, Flash, NekoVM, PHP, C ++, C # ve Java (yakında)

ancak çoklu platform donanım veya yazılım platformları olarak yanlış anlaşılabilir (win, mac, linux).

Peki, bu yeteneği tanımlayan en uygun kelime nedir?


3
"Derleme" yi kaldırırdım ve basitçe bu programlama dilinin bazı tercümanlar kullanılarak başkalarına dönüştürülebileceğini söylerdim.
Neil

6
Tercüme, çevirmen, normal diller için kullandığınız kelimeyi kullanabilirsiniz. Açıktır ve bu anlamda kullanılan kelimeyi duydum.
superM

4
@ teresko Nasıl yani? Sizi görebilmemin tek yolu, aşırı derecede kısıtlayıcı ve yararsız bir derleme tanımı kullandığınızı (çıktının makine koduna getirilmesi) olduğunu savunmak.

18
@Neil: Bir dilde yazılmış bir programı başka bir dile çevirmek yorumlama değildir . Aslında, bu tanım içinde derleme .
Jörg W Mittag

2
@Neil, derleme, tanımı gereği, bir dilden diğerine bir dönüşümdür. Ve “dönüşüm”, okuyucunuz yazım terimlerinde iyi bir şekilde bilmediği sürece, “derleme” olarak eşit derecede müstehcen ve yaylıdır. Bu yüzden "hedefleme" kelimesini kullanmanızı öneririm, örneğin, "Haxe, JavaScript'i, Flash'ı, her neyse, ve diğerlerini hedefliyor".
SK-mantık

Yanıtlar:


41

Genel terim "derleme" dir - ortak bir terim değil, teknik olarak doğru terim. Sadece modaya uygun yeni komut dosyaları için de (CoffeeScript -> JavaScript) değil; ilk C ++ derleyicileri aslında C'ye dönüştürücülerdi.


2
Ayrıca, "Transpiler, CoffeeScript'i Javascript'e transpiles eder"

4
Bu terimi daha önce hiç duymamıştım, on yıllardır sahada olmak. Kökenlerine işaret eden zihin (göründüğü ilk makaleye bağlantı en iyisi olur)?
SK-mantık

Gönderen Wikipedia : "Bir kaynak için kaynak derleyici [. Aka 'transcompiler', 'transpiler'] soyutlama yaklaşık aynı seviyede işlemler programlama dilleri arasındaki çevirir, geleneksel derleyici daha düşük bir üst düzey programlama dilinden çevirir iken seviye programlama dili. "
l0b0

4
@ l0b0, wikipedia terimin kökenleri hakkında yorumda bulunmuyor ve kesinlikle hiçbir zaman orijinal bir kaynak olması beklenmiyor .
SK-mantık

3
... google "transcompilation" aranıyor herhangi bir sonuç
vermedi

27

Üzgünüm beyler, ama bunun için kelime sadece "derlenmiş" . Bir kod türünün başka bir kod türüne dönüştürülmesi anlamına gelir. Bu kod İngilizce, C ++, x86 makine kodu, ARM makine kodu, Java, bayt kodu veya İngilizce’ye geri dönüyorsa , bu hiçbir fark yaratmaz . Genel olarak programlama dilinden makine koduna yolculuk yapmak için kullanırız, ancak bu kelimenin zaman içinde kazandığı bir özelliktir. Ve hey, eğer yeteri kadar insan yanlış bir kelimeyi kullanmaya başlarsa, gerçekten de bu yeni anlam kazanır. Ancak, Haxe'yi C ++ 'a çevirmek için bir kelime istiyorsanız, "derleme" kelimesidir .

Multiplatform: Haxe derlenebilir içine tüm popüler programlama dilleri onun hızlı derleyici ile - JavaScript, Flash NekoVM, PHP, C ++, C # ve Java (yakında)

(Ayrıca, Merriam-Webster'ı görmezden geliyorum, çünkü aptallar çünkü benimle aynı fikirde değiller ... hmmmm)


10

Belki de bu https://english.stackexchange.com/ için bir sorudur, ancak derleme işleminin başka bir üst seviye dille derlenmeyi içerdiğini ve yalnızca yerel makine koduna derleyen derleyicilerle sınırlı olmadığını söyleyebilirim.

Kelime olarak "Derleme", bilgisayar derleyicilerine özgü değildir ve oldukça geneldir. “Bir tabloyu derlemek” veya “bir isim listesi derlemek” aklıma gelir, bu nedenle birçok amaç için yeterince geniştir (Lateks derleme gibi metin işlemcileri, vb.). Derlemenin hedefi hakkında daha spesifik olmak için to source to compiler kullanacağım

Şimdi belirli bir örnek için, platformun kullanılacak uygun bir kelime olduğunu düşünüyorum. İnsan dilleri doğası gereği belirsiz oldukları için, şüphe duyuyorsanız noktaya gelmek için fazlalık (örnekler, başka kelimelerle açıklama, açıklama) kullanmanız gerekir.

Ayrıca "Haxe" ifadesini standart kütüphaneleri ve benzer şeyleri içerecek şekilde okurdum. Yani bu durumda plattform "dilin" yerine geçiyor ve siz onu "yazılım geliştirme platformu" olarak niteleyerek ondan ayırabilirsiniz.


4
Bence turkish.stackexchange.com?
Suman

3

Bir derleyicinin çeviri hedefleri olarak X, Y ve Z dilleri olduğunu veya bu hedefleri göz önünde bulundurarak bir dil tasarladığını söyleyebilirsiniz .


2

Derleyicinin tanım gereği farklı programlama diline çevrildiğini söyleyebilirim (en azından bu, bildiğim tanımdır - bir dili diğerine dönüştüren program). Örneğin, çoğu C derleyicisi çıktı olarak montaj üretir. Assembly derleyicileri bu çıktıyı alır ve aynı zamanda bir dil olan ikili koda dönüştürür. işlemciler tarafından tercih edilir (veya nesne dosyalarında bağlayıcı tarafından yapılan belirli işlemler vardır). Benzer şekildejavapbytecode'da derler. Genellikle böyle bir zincirin sonunda, son kodu çalıştıran tercüman vardır (CPU, GPU veya yürütülen program olsun). Modern x86, programları dahili işlemlere (mikro-oplar) yeniden derlediği için makine kodu olarak 'böyle bir şey yoktur' ve ARM makine kodunu x86 veya başka bir şekilde çevrilmiş olarak yorumlanmış dil olarak işleme koyabiliyorum. bir formdan diğerine).

Haxe, daha üst seviye bir dili önceki örneklerde olduğu gibi daha düşük bir seviyeye çevirmediğinden, kaynaktan kaynaktan derleyicidir. Çok platformlu belirsizlik sorununu doğrudan ele alıyor gibi görünmüyor ancak maalesef bu iki şey arasında pratik bir ayrım yolu olduğunu sanmıyorum - API'ler genel olarak yorumlanabilen, derlenen vb. Dillerdir.


1

İlk önce ilk şey: Bu özellik için zaten uygun bir kelime olup olmadığını bilmiyorum.

Ama belki çok dilli olarak adlandırılabilir. Veya languageagnostic? Programlama dili hakkında daha fazla olduğu için, addaki 'dil' ifadesi, onu çoklu platformdan daha açık hale getirebilir.

Tabii ki dil de belirsizdir, çünkü kaynak kodun herhangi bir gerçek dünya dilinde yazılabileceği anlaşılabilir (örneğin değişkenler unicode olarak yazılabilir).

Diğer taraftan, her tecrübeli programcı muhtemelen yerelleşmeden veya uluslararasılaştırmadan farklı bir yapıyı tanıyacaktır, bu yüzden onu daha kolay “alabilir”.

Sadece 2 sentim.


bunun doğru olduğunu sanmıyorum; ve gerçeği görürseniz, site yalnızca aslında doğru cevapları sever. ama topluluğa hoş geldin ve cevaptan emin olduğunuzda biraz daha cevap vereceğinizi umuyorum :)
tgkprog
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.