Bagaimana saya bisa mengatakan dalam bahasa Inggris, bahwa bahasa pemrograman dapat dikompilasi ke bahasa pemrograman lain?
Contohnya bisa Haxe . Di situs web bahasa didekribusikan sebagai "Multiplatform":
Multiplatform: Haxe dapat dikompilasi ke semua platform pemrograman populer dengan kompiler cepatnya - JavaScript, Flash, NekoVM, PHP, C ++, C # dan Java (segera)
tetapi multiplatform dapat disalahpahami sebagai platform perangkat keras atau perangkat lunak (win, mac, linux).
Jadi apa kata yang paling cocok untuk menggambarkan kemampuan ini?
Jawaban:
Istilah yang biasa adalah "transkompilasi" - bukan istilah yang umum, tetapi yang secara teknis benar. Ini bukan hanya untuk bahasa skrip baru yang trendi (CoffeeScript -> JavaScript); kompiler C ++ pertama sebenarnya adalah transkompiler ke C.
sumber
Tuan-tuan maaf, tapi kata untuk ini hanya "dikompilasi" . Itu berarti mengubah satu jenis kode menjadi jenis kode lain. Tidak ada perbedaan nyata jika kode itu adalah bahasa Inggris, C ++, kode mesin x86, kode mesin ARM, Java, bytecode , atau kembali ke bahasa Inggris. Kami biasanya menggunakannya untuk mengartikan perjalanan dari bahasa pemrograman ke kode mesin, tetapi itulah aspek yang didapat dari waktu ke waktu. Dan hei, jika cukup banyak orang mulai menggunakan kata yang salah, itu memang mendapatkan makna baru. Tetapi jika Anda menginginkan kata untuk mengubah Haxe menjadi C ++, kata tersebut adalah "kompilasi" .
(Juga, aku mengabaikan Merriam-Webster, karena mereka bodoh karena mereka tidak setuju denganku ... hmmmm)
sumber
Mungkin ini adalah pertanyaan untuk https://english.stackexchange.com/ namun saya akan mengatakan bahwa proses kompilasi mencakup kompilasi ke bahasa tingkat tinggi lainnya dan tidak hanya terbatas pada kompiler yang mengkompilasi kode mesin asli.
Sebagai kata "Kompilasi" tidak spesifik untuk kompiler komputer sama sekali dan cukup umum. "Mengompilasi tabel" atau "menyusun daftar nama" muncul di benak saya, oleh karena itu cukup luas untuk banyak tujuan (pemroses teks seperti juga kompilasi Latex, dll.). Untuk lebih spesifik tentang target kompilasi saya akan menggunakan to-source-compiler
Sekarang untuk contoh spesifik, saya pikir platform adalah kata yang tepat untuk digunakan. Karena bahasa manusia secara inheren ambigu, Anda harus menggunakan redundansi (contoh, parafrase dengan kata lain, menjelaskan) untuk mendapatkan maksud jika ragu-ragu.
Saya juga akan membaca pernyataan "Haxe" dengan cara yang mencakup perpustakaan standar dan hal-hal serupa. Yaitu dalam hal itu plattform akan menjadi superset "bahasa" dan Anda dapat memisahkannya dengan menyebutnya "platform pengembangan perangkat lunak" dll.
sumber
Anda dapat mengatakan bahwa kompiler memiliki bahasa X, Y, dan Z sebagai target terjemahan , atau merancang bahasa dengan target tersebut dalam pikiran.
sumber
Saya akan mengatakan bahwa kompiler dengan definisi diterjemahkan ke dalam bahasa pemrograman yang berbeda (setidaknya ini adalah definisi yang saya tahu - program yang mengubah satu bahasa menjadi bahasa lain). Sebagai contoh, kebanyakan kompiler C menghasilkan perakitan sebagai output. Compiler Majelis mengambil output ini dan mengubahnya menjadi kode biner yang juga merupakan bahasa (tentu - mungkin tidak ada yang menulis menulis di dalamnya selama 40 tahun terakhir atau lebih tetapi secara teknis itu adalah bahasa) - yang dapat diambil dan dikompilasi ulang untuk mengatakan mikro ops oleh prosesor (atau ada operasi tertentu yang dilakukan oleh linker pada file objek). Demikian pula dengan
javap
mengkompilasi menjadi bytecode. Biasanya pada akhir rantai seperti itu ada juru bahasa yang mengeksekusi kode akhir (baik itu CPU, GPU atau program yang dijalankan). Tidak ada yang namanya kode mesin sebagai x86 modern mengkompilasi ulang program ke dalam operasi internal (micro-ops) dan saya sangat mampu memperlakukan kode mesin ARM sebagai bahasa yang ditafsirkan pada x86 atau sebaliknya (dalam beberapa kasus bahkan mengkompilasi ulang dari satu bentuk ke bentuk lainnya).Haxe adalah kompiler sumber-ke-sumber karena ia tidak mengubah bahasa level yang lebih tinggi ke level yang lebih rendah seperti contoh sebelumnya. Tampaknya tidak membahas langsung masalah ambiguitas multi-platform Anda, tetapi sayangnya saya tidak berpikir ada cara praktis untuk membedakan antara kedua hal tersebut - API adalah jenis bahasa yang dapat diartikan secara umum, disusun ulang dll.
sumber
Hal pertama yang pertama: Saya tidak tahu apakah sudah ada kata yang cocok untuk fitur ini.
Tapi mungkin itu bisa disebut multilanguage? Atau bahasaagnostik? Karena ini lebih tentang bahasa pemrograman, maka penyebutan 'bahasa' dalam nama bisa membuatnya lebih jelas daripada multiplatform.
Tentu saja bahasa juga ambigu, karena dapat dipahami bahwa kode sumber dapat ditulis dalam bahasa dunia nyata (misalnya karena variabel dapat ditulis dalam unicode).
Di sisi lain, setiap programmer berpengalaman mungkin akan mengenali konstruk yang berbeda dari lokalisasi atau internasionalisasi, sehingga mereka mungkin 'mendapatkannya' dengan lebih mudah.
Hanya 2 sen saya.
sumber