Apa yang membuat bahasa menjadi bahasa skrip? Saya pernah mendengar beberapa orang berkata "ketika itu diinterpretasikan daripada dikompilasi". Itu akan membuat PHP (misalnya) menjadi bahasa scripting. Apakah itu satu-satunya kriteria? Ataukah ada kriteria lain?
107
Jawaban:
Bahasa scripting adalah bahasa yang "menulis" hal lain untuk melakukan sesuatu. Fokus utamanya bukanlah membangun aplikasi Anda sendiri, melainkan membuat aplikasi yang ada berfungsi seperti yang Anda inginkan, misalnya JavaScript untuk browser, VBA untuk MS Office.
sumber
Sederhana. Ketika saya menggunakannya, itu adalah bahasa dinamis modern, ketika Anda menggunakannya, itu hanya bahasa skrip!
sumber
Secara tradisional, ketika berbicara tentang perbedaan tentang skrip versus pemrograman, skrip ditafsirkan dan program dikompilasi. Sebuah bahasa dapat dijalankan dengan berbagai cara - diinterpretasikan atau dikompilasi (menjadi bytecode atau kode mesin). Ini tidak membuat satu bahasa atau lainnya.
Di beberapa mata, cara Anda menggunakan bahasa menjadikannya bahasa skrip (misalnya, pengembang game yang mengembangkan terutama dalam C ++ akan membuat skrip objek di Lua). Sekali lagi, garis-garisnya kabur - satu bahasa dapat digunakan untuk pemrograman oleh satu orang dan bahasa yang sama dapat digunakan untuk bahasa skrip oleh orang lain.
Ini dari artikel wikipedia tentang bahasa scripting:
Anda akan melihat penggunaan "biasanya", "sering", "secara tradisional" dan "hampir selalu" - ini semua memberi tahu Anda bahwa tidak ada kumpulan atribut berbeda yang membuat bahasa tertentu menjadi "bahasa skrip".
sumber
Saya benar-benar tidak berpikir ada banyak perbedaan lagi. Yang disebut bahasa "scripting" sering dikompilasi - sangat cepat, dan saat runtime. Dan beberapa bahasa "pemrograman" juga dikompilasi lebih lanjut pada saat runtime (pikirkan JIT) dan tahap pertama "kompilasi" adalah pemeriksaan sintaks dan resolusi sumber daya.
Jangan terpaku pada itu, itu benar-benar tidak penting.
sumber
Definisi saya adalah bahasa yang biasanya didistribusikan sebagai sumber daripada sebagai biner.
sumber
Ada banyak kemungkinan jawaban untuk ini.
Pertama: sebenarnya bukan pertanyaan tentang perbedaan antara bahasa skrip dan bahasa pemrograman, karena bahasa skrip adalah bahasa pemrograman. Ini lebih merupakan pertanyaan tentang sifat apa yang membuat beberapa bahasa pemrograman menjadi bahasa skrip sementara bahasa pemrograman lain bukan bahasa skrip.
Kedua: sangat sulit untuk mengatakan apa bahasa XYZ itu, apakah XYZ itu "scripting", "pemrograman fungsional", "pemrograman berorientasi objek" atau apa pun yang Anda miliki. Definisi dari apa itu "pemrograman fungsional", cukup jelas, tetapi tidak ada yang tahu apa itu "bahasa pemrograman fungsional".
Pemrograman fungsional atau pemrograman berorientasi objek adalah gaya pemrograman ; Anda dapat menulis dalam gaya fungsional atau gaya berorientasi objek di hampir semua bahasa. Misalnya, Switch Sistem File Virtual Linux dan Model Driver Linux sangat berorientasi objek meskipun ditulis dalam C, sedangkan banyak kode Java atau C # yang Anda lihat di web sangat prosedural dan tidak berorientasi objek sama sekali . OTOH, saya telah melihat beberapa kode Java yang sangat berfungsi.
Jadi, jika pemrograman fungsional dan pemrograman berorientasi objek hanyalah gaya yang dapat dilakukan dalam bahasa apa pun , lalu bagaimana Anda mendefinisikan "bahasa pemrograman berorientasi objek"? Bisa dikatakan bahwa bahasa pemrograman berorientasi objek adalah bahasa yang memungkinkan pemrograman berorientasi objek. Tapi itu bukan definisi yang tepat: semua bahasa memungkinkan pemrograman berorientasi objek, oleh karena itu semua bahasa berorientasi objek? Jadi, Anda katakan, baiklah bahasa itu berorientasi objek, jika itu memaksa Anda untuk memprogram dalam gaya berorientasi objek. Tapi itu juga bukan definisi yang tepat: semua bahasa memungkinkan pemrograman fungsional, oleh karena itu tidak ada bahasa yang berorientasi objek?
Jadi, bagi saya, saya telah menemukan definisi berikut:
Jadi, setelah lima paragraf, saya sampai pada: "bahasa skrip adalah bahasa untuk skrip". Definisi yang sangat bagus. TIDAK.
Jelas, sekarang kita perlu melihat definisi "scripting".
Di sinilah masalah ketiga masuk: sedangkan istilah "pemrograman fungsional" didefinisikan dengan baik dan hanya istilah "bahasa pemrograman fungsional" yang bermasalah, sayangnya dengan skrip, baik istilah "skrip" dan istilah "bahasa skrip "tidak jelas.
Nah, scripting pertama adalah pemrograman. Itu hanya jenis pemrograman khusus. IOW: setiap skrip adalah program, tetapi tidak setiap program adalah skrip; himpunan semua skrip adalah himpunan bagian yang sesuai dari himpunan semua program.
Menurut pendapat pribadi saya, hal yang membuat scripting scripting dan membedakannya dari jenis pemrograman lainnya adalah bahwa…
Pikirkan tentang skrip shell: skrip shell biasanya memanipulasi file, direktori, dan proses. Mayoritas file, direktori, dan proses di sistem Anda mungkin tidak dibuat oleh skrip yang sedang berjalan. Dan mereka tidak menghilang saat skrip keluar: masa hidup mereka benar-benar independen dari skrip. Dan mereka juga bukan bagian dari skrip, mereka adalah bagian dari sistem. Anda tidak memulai skrip Anda dengan menulis
File
danDirectory
kelas, tipe data itu bukan urusan Anda: Anda hanya menganggapnya ada, dan Anda bahkan tidak tahu (juga tidak perlu tahu) cara kerjanya. Dan Anda juga tidak mengimplementasikan algoritme Anda sendiri, misalnya untuk traversal direktori yang hanya Anda gunakanfind
alih-alih menerapkan pencarian luas-pertama-pertama Anda sendiri.Singkatnya: skrip menempel pada sistem yang lebih besar yang ada secara independen dari skrip, memanipulasi beberapa bagian kecil dari sistem dan kemudian keluar.
Sistem yang lebih besar itu dapat berupa sistem operasi dalam kasus skrip shell, DOM browser dalam kasus skrip browser, permainan (misalnya World of Warcraft dengan Lua atau Second Life dengan Linden Scripting Language), aplikasi (misalnya AutoLisp bahasa untuk makro AutoCAD atau Excel / Word / Office), server web, paket robot, atau sesuatu yang sama sekali lain.
Perhatikan bahwa aspek scripting benar-benar ortogonal untuk semua aspek lain dari bahasa pemrograman: bahasa scripting dapat diketik dengan kuat atau lemah, diketik dengan ketat atau longgar, diketik secara statis atau dinamis, diketik secara nominal, terstruktur atau bebek, sih bahkan bisa tidak diketik . Ini bisa bersifat imperatif atau fungsional, berorientasi objek, prosedural atau fungsional, ketat atau malas. Implementasinya dapat diartikan, dikompilasi atau dicampur.
Misalnya, Mondrian adalah bahasa skrip fungsional malas yang diketik dengan kuat secara statis dengan implementasi terkompilasi.
Namun, semua ini diperdebatkan, karena cara istilah bahasa skrip benar - benar digunakan di dunia nyata, tidak ada hubungannya dengan semua hal di atas. Ini paling sering digunakan hanya sebagai penghinaan, dan definisinya agak sederhana, bahkan sederhana:
Tampaknya inilah cara istilah yang paling sering digunakan.
sumber
Ini seperti pornografi, Anda tahu saat melihatnya. Satu-satunya definisi yang mungkin dari bahasa skrip adalah:
Agak melingkar, bukan? (Ngomong-ngomong, saya tidak bercanda).
Pada dasarnya, tidak ada yang menjadikan suatu bahasa sebagai bahasa scripting kecuali disebut demikian, terutama oleh penciptanya. Kumpulan utama bahasa scripting modern adalah PHP, Perl, JavaScript, Python, Ruby dan Lua. Tcl adalah bahasa skrip modern besar pertama (itu bukan bahasa skrip pertama, saya lupa apa itu, tetapi saya terkejut mengetahui bahwa itu mendahului Tcl).
Saya menjelaskan fitur bahasa skrip utama dalam makalah saya :
Sebagian besar diketik dan ditafsirkan secara dinamis, dan sebagian besar tidak memiliki semantik yang ditentukan di luar implementasi referensi mereka. Namun, bahkan jika implementasi utamanya menjadi terkompilasi atau JITed, itu tidak mengubah "sifat" bahasa.
Mereka hanya tersisa pertanyaan adalah bagaimana Anda bisa tahu jika bahasa baru adalah bahasa skrip. Nah, jika itu disebut bahasa scripting, itu adalah salah satunya. Jadi Factor adalah bahasa scripting (atau setidaknya saat itu ditulis), tapi, katakanlah, Java bukan.
sumber
"Bahasa skrip" adalah salah satu konsep fuzzy yang bisa berarti banyak hal. Biasanya ini mengacu pada fakta bahwa terdapat proses satu langkah yang membawa Anda dari kode sumber ke eksekusi.
Misalnya di Perl Anda melakukan:
perl my_source.pl
Dengan kriteria di atas, PHP adalah bahasa skrip (meskipun Anda dapat memiliki proses "kompilasi" misalnya saat menggunakan Zend Encoder untuk "melindungi" kode sumber).
PS. Seringkali (tetapi tidak selalu) bahasa skrip ditafsirkan. Juga sering (tetapi sekali lagi, tidak selalu) bahasa skrip diketik secara dinamis.
sumber
Semua bahasa scripting adalah bahasa pemrograman. Jadi tegasnya, tidak ada perbedaan.
Istilah ini tidak mengacu pada sifat dasar bahasa apa pun, ini mengacu pada penggunaan bahasa yang khas . Jika penggunaan tipikal adalah untuk menulis program pendek yang terutama melakukan panggilan ke kode yang sudah ada sebelumnya, dan beberapa pemrosesan sederhana pada hasil, (yaitu, jika penggunaan tipikal adalah untuk menulis skrip ) maka itu adalah bahasa skrip.
sumber
Saya pikir Tuan Roberto Ierusalimschy memiliki jawaban yang sangat bagus atau pertanyaan di 'Pemrograman di Lua':
sumber
eval
fungsi kekuatan penuh .Satu divisi adalah
Bahasa yang ditafsirkan secara dinamis diinterpretasikan pada waktu proses sedangkan bahasa yang dikompilasi dikompilasi sebelum dieksekusi.
Saya harus menambahkan bahwa seperti yang telah ditunjukkan Jörg, perbedaan yang ditafsirkan / dikompilasi bukanlah fitur bahasa, tetapi mesin eksekusi.
Anda mungkin juga tertarik dengan penjelasan Sistem Jenis ini , yang terkait dan lebih berfokus pada aspek bahasa, daripada mesin eksekusi. Kebanyakan bahasa skrip diketik secara dinamis, sedangkan bahasa "normal" sebagian besar diketik secara statis.
Secara umum pembagian bahasa yang diketik secara statis vs bahasa yang diketik secara dinamis lebih baik didefinisikan dan memiliki lebih banyak implikasi pada kegunaan bahasa tersebut.
sumber
Bahasa scripting biasanya :
Sedangkan bahasa non-scripting biasanya : 1. Diketik statis 2. Disusun, dengan penekanan pada kinerja 3. Memerlukan lebih banyak kode boilerplate, yang mengarah ke pembuatan prototipe yang lebih lambat tetapi lebih mudah dibaca dan pemeliharaan jangka panjang 4. Digunakan untuk proyek besar, beradaptasi dengan banyak pola desain
Tapi sekarang ini lebih merupakan perbedaan sejarah, menurut saya. Javascript dan Perl ditulis dengan skrip yang kecil dan sederhana, sedangkan C ++ ditulis dengan aplikasi yang kompleks; tetapi keduanya dapat digunakan dengan cara apa pun. Dan banyak bahasa pemrograman, baik modern maupun lama, tetap saja mengaburkan garis (dan awalnya kabur!).
Hal yang menyedihkan adalah, saya mengenal beberapa pengembang yang membenci apa yang mereka anggap sebagai "bahasa skrip", menganggapnya lebih sederhana dan tidak sekuat itu. Pendapat saya adalah klise lama itu - gunakan alat yang tepat untuk pekerjaan itu.
sumber
Bahasa skrip awalnya dianggap sebagai mekanisme kontrol untuk aplikasi yang ditulis dalam bahasa pemrograman yang keras. Program yang dikompilasi tidak dapat dimodifikasi pada saat runtime, jadi skrip memberi orang fleksibilitas.
Terutama, skrip shell mengotomatiskan proses di kernel OS (biasanya, AppleScript di Mac); sebuah peran yang semakin banyak diberikan ke tangan Perl, dan kemudian keluar ke Python belakangan ini. Saya telah melihat Skema (khususnya dalam implementasi Guile) yang digunakan untuk mendeklarasikan adegan raytracing; dan baru-baru ini, Lua sangat populer sebagai bahasa pemrograman untuk permainan skrip - sampai-sampai satu-satunya hal yang di-hardcode di banyak game baru adalah mesin grafis / fisika, sedangkan logika game secara keseluruhan dikodekan dalam Lua. Dengan cara yang sama, JavaScript dianggap sebagai skrip perilaku browser web.
Bahasa-bahasa yang dibebaskan; tidak ada yang sekarang berpikir tentang OS sebagai aplikasi (atau memikirkannya sama sekali), dan banyak bahasa skrip sebelumnya mulai digunakan untuk menulis aplikasi lengkap mereka sendiri. Nama itu sendiri menjadi tidak berarti, dan menyebar ke banyak bahasa tafsir yang digunakan saat ini, terlepas dari apakah mereka dirancang untuk ditafsirkan dari dalam sistem lain atau tidak.
Namun, "bahasa scripting" jelas tidak sama dengan "bahasa yang ditafsirkan" - misalnya, BASIC ditafsirkan untuk sebagian besar hidupnya (yaitu sebelum kehilangan akronimitasnya dan menjadi Visual Basic), namun tidak ada yang benar-benar menganggapnya sebagai pembuatan skrip.
UPDATE: Bahan bacaan seperti biasa tersedia di Wikipedia .
sumber
Poin pertama, bahasa pemrograman bukanlah "bahasa scripting" atau sesuatu yang lain. Ini bisa menjadi "bahasa scripting" dan sesuatu yang lain.
Poin kedua, pelaksana bahasa akan memberi tahu Anda apakah itu bahasa skrip.
Pertanyaan Anda harus berbunyi "Dalam penerapan apa bahasa pemrograman dianggap sebagai bahasa skrip?", Bukan "Apa perbedaan antara bahasa skrip dan bahasa pemrograman?". Tidak ada diantara keduanya.
Namun, saya akan menganggap suatu bahasa sebagai bahasa skrip jika digunakan untuk menyediakan beberapa jenis perangkat tengah. Misalnya, saya akan menganggap sebagian besar implementasi JavaScript sebagai bahasa skrip. Jika JavaScript dijalankan di OS, bukan di browser, maka itu bukan bahasa scripting. Jika PHP berjalan di dalam Apache, itu adalah bahasa scripting. Jika dijalankan dari baris perintah, tidak.
sumber
Saya melihat bahasa scripting sebagai sesuatu yang tidak membutuhkan langkah 'kompilasi' perasaan beban berat yang terbuka. Fitur utama dari sudut pandang programmer adalah: Anda mengedit kode dan langsung menjalankannya.
Jadi saya akan menganggap JavaScript dan PHP sebagai bahasa scripting, sedangkan ActionScript 3 / Flex tidak benar-benar.
sumber
Teman saya dan saya baru saja memiliki argumen ini: Apa perbedaan antara bahasa pemrograman dan bahasa scripting.
Argumen populer adalah bahwa bahasa pemrograman dikompilasi dan bahasa skrip ditafsirkan - Namun saya yakin argumen ini sepenuhnya salah ... mengapa?
Atas dasar itu, inilah argumen saya tentang perbedaan antara bahasa pemrograman dan bahasa scripting:
Bahasa pemrograman berjalan pada level mesin dan memiliki akses ke mesin itu sendiri (memori, grafik, suara, dll).
Bahasa skrip dikotak pasir dan hanya memiliki akses ke objek yang diekspos ke kotak pasir. Itu tidak memiliki akses langsung ke mesin yang mendasarinya.
sumber
Dalam Opini Saya, saya akan mengatakan bahwa bahasa yang ditafsirkan secara dinamis seperti PHP, Ruby, dll ... masih merupakan bahasa "normal". Saya akan mengatakan bahwa contoh bahasa "scripting" adalah hal-hal seperti bash (atau ksh atau tcsh atau apa pun) atau sqlplus. Bahasa-bahasa ini sering digunakan untuk merangkai program yang ada di sistem menjadi serangkaian perintah yang koheren dan terkait, seperti:
Jadi menurut saya perbedaannya (bagi saya) lebih pada cara Anda menggunakan bahasa tersebut. Bahasa seperti PHP, Perl, Ruby dapat digunakan sebagai "bahasa skrip", tetapi saya biasanya melihatnya digunakan sebagai "bahasa normal" (kecuali Perl yang tampaknya berjalan dua arah.
sumber
Saya hanya akan melanjutkan dan memindahkan jawaban saya dari pertanyaan duplikat
Nama "Bahasa skrip" berlaku untuk peran yang sangat spesifik: bahasa yang Anda tuliskan perintah untuk dikirim ke aplikasi perangkat lunak yang ada. (seperti "naskah" TV atau film tradisional)
Misalnya, dahulu kala, halaman web HTML membosankan. Mereka selalu statis. Lalu suatu hari, Netscape berpikir, "Hei, bagaimana jika kita membiarkan browser membaca dan menjalankan perintah kecil di halaman?" Dan seperti itu, Javascript dibentuk.
Perintah javascript sederhana adalah
alert()
perintah, yang menginstruksikan / memerintahkan browser (aplikasi perangkat lunak) yang membaca halaman web untuk menampilkan peringatan.Sekarang, apakah
alert()
terkait, dengan cara apa pun, dengan C ++ atau bahasa kode apa pun yang sebenarnya digunakan browser untuk menampilkan peringatan? Tentu saja tidak. Seseorang yang menulis "alert ()" pada halaman .html tidak memiliki pemahaman tentang bagaimana browser sebenarnya menampilkan alert. Dia hanya menulis perintah yang akan diterjemahkan browser.Mari kita lihat kode javascript sederhana
Ini adalah instruksi yang dikirim ke browser, untuk ditafsirkan oleh browser itu sendiri. Bahasa pemrograman yang digunakan browser untuk benar-benar menetapkan variabel ke 4, dan memasukkannya ke dalam peringatan ... itu sama sekali tidak terkait dengan javascript.
Kami menyebut rangkaian perintah terakhir itu sebagai "skrip" (itulah sebabnya ia diapit dalam
<script>
tag). Hanya dengan definisi "script", dalam arti tradisional: Serangkaian instruksi dan perintah yang dikirimkan kepada para aktor . Semua orang tahu bahwa skenario (naskah film), misalnya, adalah naskah.Skenario (skrip) bukanlah aktor, atau kamera, atau efek khusus. Skenario hanya memberi tahu mereka apa yang harus dilakukan.
Sekarang, apa sebenarnya bahasa scripting itu ?
Ada banyak bahasa pemrograman yang seperti alat berbeda di kotak alat; beberapa bahasa dirancang khusus untuk digunakan sebagai skrip.
Javasript adalah contoh nyata; Ada sangat sedikit aplikasi Javascript yang tidak termasuk dalam ranah scripting.
ActionScript (bahasa untuk animasi Flash) dan turunannya adalah bahasa scripting, di mana mereka hanya mengeluarkan perintah ke Flash player / interpreter. Tentu, ada abstraksi seperti pemrograman Berorientasi Objek, tetapi semua itu hanyalah sarana untuk mencapai tujuan: mengirim perintah ke pemutar flash.
Python dan Ruby biasanya juga digunakan sebagai bahasa scripting. Sebagai contoh, saya pernah bekerja untuk sebuah perusahaan yang menggunakan Ruby untuk membuat script perintah untuk dikirim ke browser yang berada di sepanjang baris, "buka situs ini, klik link ini ..." untuk melakukan beberapa pengujian otomatis dasar. Saya tidak "Pengembang Perangkat Lunak" pada pekerjaan itu. Saya baru saja menulis skrip yang mengirim perintah ke komputer untuk mengirim perintah ke browser.
Karena sifatnya, bahasa skrip jarang 'dikompilasi' - yaitu, diterjemahkan ke dalam kode mesin, dan dibaca langsung oleh komputer.
Bahkan aplikasi GUI yang dibuat dari Python dan Ruby adalah skrip yang dikirim ke API yang ditulis dalam C ++ atau C. Ini memberi tahu aplikasi C apa yang harus dilakukan.
Ada garis ketidakjelasan, tentu saja. Mengapa Anda tidak dapat mengatakan bahwa Bahasa Mesin / C adalah bahasa skrip, karena itu adalah skrip yang digunakan komputer untuk berinteraksi dengan motherboard / kartu grafis / chip dasar?
Ada beberapa garis yang bisa kita gambar untuk memperjelas:
Ketika Anda dapat menulis bahasa skrip dan menjalankannya tanpa "kompilasi", itu lebih merupakan semacam skrip langsung. Misalnya, Anda tidak perlu melakukan apa pun dengan skenario untuk memberi tahu aktor apa yang harus dilakukan dengannya. Itu sudah ada, digunakan, apa adanya. Karena alasan ini, kami akan mengecualikan bahasa yang dikompilasi agar tidak disebut bahasa skrip, meskipun bahasa tersebut dapat digunakan untuk tujuan pembuatan skrip dalam beberapa kesempatan.
Bahasa skrip menyiratkan perintah yang dikirim ke aplikasi perangkat lunak yang kompleks ; itulah alasan utama kami menulis skrip - jadi Anda tidak perlu mengetahui kerumitan cara kerja perangkat lunak untuk mengirim perintah ke sana. Jadi, bahasa skrip cenderung menjadi bahasa yang mengirim (relatif) perintah sederhana ke aplikasi perangkat lunak yang kompleks ... dalam hal ini, bahasa mesin dan kode assembly tidak memotongnya.
sumber
Izinkan saya menyarankan bahwa bahasa skrip telah menjadi istilah yang banyak orang menjauh. Saya akan mengatakan sebagian besar bermuara pada bahasa yang dikompilasi dan bahasa dinamis saat ini.
Maksud saya, Anda tidak bisa mengatakan sesuatu seperti Python, atau Ruby adalah bahasa "scripting" di zaman sekarang ini (Anda bahkan memiliki hal-hal seperti IronPython dan JIT-bahasa-favorit-Anda , perbedaannya semakin kabur).
Sejujurnya, secara pribadi saya tidak merasa PHP adalah bahasa scripting lagi. Saya tidak berharap orang menyukai mengkategorikan PHP secara berbeda dari kata Java di resume mereka.
sumber
Bahasa skrip cenderung berjalan dalam mesin skrip yang merupakan bagian dari aplikasi yang lebih besar. Misalnya, JavaScript berjalan di dalam mesin skrip browser Anda.
sumber
Bahasa skrip adalah bahasa yang diinterpretasikan setiap kali skrip dijalankan, ini menyiratkan memiliki penerjemah dan sebagian besar sangat mudah dibaca manusia, agar berguna bahasa skrip mudah dipelajari dan digunakan.
Setiap bahasa compilable dapat dibuat menjadi bahasa script dan sebaliknya semuanya tergantung pada implementasi interpreter atau compiler, sebagai contoh C ++ memiliki interpreter sehingga dapat disebut sebagai bahasa script jika digunakan demikian (tidak terlalu praktis secara umum seperti C ++ adalah bahasa yang sangat kompleks), salah satu bahasa skrip yang paling berguna saat ini adalah Python ...
Jadi untuk menjawab pertanyaan Anda, definisinya adalah tentang penggunaan juru bahasa untuk menjalankan program skrip dengan cepat dan mudah, untuk menangani tugas-tugas sederhana atau aplikasi prototipe, penggunaan yang paling kuat yang dapat dilakukan seseorang dari bahasa skrip adalah memasukkan kemungkinan untuk setiap penggunaan untuk memperluas aplikasi yang dikompilasi.
sumber
Saya lebih suka orang tidak menggunakan istilah "bahasa skrip" karena menurut saya itu mengurangi upaya. Ambil bahasa seperti Perl, sering disebut "bahasa skrip".
Mengapa kita perlu membedakan antara bahasa seperti Java yang dikompilasi dan Ruby yang bukan? Apa nilai pelabelan?
Untuk lebih lanjut tentang ini, lihat http://xoa.petdance.com/Stop_saying_script .
sumber
Perbedaan penting adalah pengetikan yang kuat (versus pengetikan yang lemah ). Bahasa skrip sering kali diketik dengan lemah , sehingga memungkinkan untuk menulis program kecil dengan lebih cepat. Untuk program besar, ini merupakan kerugian, karena menghambat compiler / interpreter untuk menemukan bug tertentu secara mandiri, sehingga sangat sulit untuk melakukan refactor kode.
sumber
Bahasa skrip adalah bahasa pemrograman di mana program biasanya dikirim ke pengguna akhir dalam bentuk tekstual yang dapat dibaca dan di mana ada program yang tampaknya dapat menjalankan program itu secara langsung. (Program mungkin mengkompilasi skrip secara internal; itu tidak relevan di sini karena tidak terlihat oleh pengguna.)
Bahasa skrip relatif umum untuk dapat mendukung sesi interaktif di mana pengguna dapat mengetikkan program mereka dan menjalankannya segera. Ini karena ini adalah perpanjangan sepele dari persyaratan esensial dari paragraf pertama; Persyaratan ekstra utama adalah penambahan mekanisme untuk mengetahui kapan pernyataan yang diketik sudah lengkap sehingga dapat dikirim ke mesin eksekusi.
sumber
Untuk pandangan yang sedikit berbeda tentang pertanyaan itu. Bahasa scripting adalah bahasa pemrograman tetapi bahasa pemrograman belum tentu merupakan bahasa scripting. Bahasa skrip digunakan untuk mengontrol atau membuat skrip sistem. Sistem itu bisa menjadi sistem operasi di mana bahasa skripnya adalah bash. Sistem ini dapat berupa server web dengan bahasa skrip PHP. Bahasa skrip dirancang untuk mengisi ceruk tertentu; mereka adalah bahasa khusus domain. Sistem interaktif telah menafsirkan bahasa skrip sehingga memunculkan gagasan bahwa bahasa skrip ditafsirkan; bagaimanapun, ini adalah konsekuensi dari sistem dan bukan bahasa skrip itu sendiri.
sumber
Bahasa skrip adalah bahasa yang mengkonfigurasi atau memperluas program yang ada.
Bahasa Scripting adalah bahasa Pemrograman.
sumber
Definisi "bahasa skrip" cukup kabur. Saya akan mendasarkannya pada pertimbangan berikut:
Bahasa skrip biasanya tidak memiliki langkah-langkah kompilasi yang dapat dilihat pengguna. Biasanya pengguna hanya dapat menjalankan program dalam satu perintah mudah.
Program dalam bahasa skrip biasanya diedarkan dalam bentuk sumber.
Bahasa skrip biasanya memiliki waktu proses yang ada di banyak sistem, dan waktu proses dapat diinstal dengan mudah di sebagian besar sistem.
Bahasa skrip cenderung lintas platform dan tidak khusus mesin.
Bahasa skrip memudahkan untuk memanggil program dan antarmuka lain dengan sistem operasi.
Bahasa skrip biasanya mudah disematkan ke sistem yang lebih besar yang ditulis dalam bahasa pemrograman yang lebih konvensional.
Bahasa skrip biasanya dirancang untuk kemudahan pemrograman, dan dengan lebih sedikit memperhatikan kecepatan eksekusi. (Jika Anda ingin eksekusi cepat, saran yang biasa adalah membuat kode bagian yang memakan waktu seperti C, dan menyematkan bahasa ke C atau memanggil bit C dari bahasa tersebut.)
Beberapa karakteristik yang saya sebutkan di atas adalah benar dari implementasi, dalam hal ini saya mengacu pada implementasi yang lebih umum. Ada penerjemah C, dengan (AFAIK) tidak ada langkah kompilasi yang jelas, tetapi itu tidak berlaku untuk sebagian besar implementasi C. Anda pasti bisa mengkompilasi program Perl ke kode asli, tapi itu tidak biasanya digunakan. Beberapa karakteristik lainnya bersifat sosial. Beberapa kriteria di atas agak tumpang tindih. Seperti yang saya katakan, definisinya tidak jelas.
sumber
Saya akan mengatakan bahasa scripting adalah entitas yang sangat memanipulasi yang tidak didefinisikannya sendiri. Misalnya, JavaScript memanipulasi objek DOM yang disediakan oleh browser, PHP mengoperasikan perpustakaan fungsi berbasis C yang sangat besar, dan seterusnya. Tentu bukan definisi yang tepat, lebih merupakan cara berpikir jika itu.
sumber
Jika tidak / tidak mau berjalan di CPU, itu skrip bagi saya. Jika juru bahasa perlu dijalankan pada CPU di bawah program, maka itu adalah skrip dan bahasa skrip.
Tidak ada alasan untuk membuatnya lebih rumit dari ini?
Tentu saja, di sebagian besar (99%) kasus, jelas apakah suatu bahasa adalah bahasa skrip. Tetapi pertimbangkan bahwa VM dapat meniru set instruksi x86, misalnya. Bukankah ini akan menjadikan x86 bytecode sebagai bahasa skrip saat dijalankan di VM? Bagaimana jika seseorang menulis kompiler yang akan mengubah kode perl menjadi executable asli? Dalam hal ini, saya tidak tahu lagi harus menyebut bahasa itu apa. Itu akan menjadi keluaran yang penting, bukan bahasanya.
Kemudian lagi, saya tidak mengetahui hal seperti ini telah dilakukan, jadi untuk saat ini saya masih nyaman menyebut bahasa yang ditafsirkan sebagai bahasa skrip.
sumber
Sebuah naskah adalah relatif kecil program yang. Sebuah sistem yang relatif besar program, atau suatu koleksi dari program yang relatif besar.
Beberapa bahasa pemrograman dirancang dengan fitur-fitur yang oleh desainer bahasa dan komunitas pemrograman dianggap berguna saat menulis program yang relatif kecil. Bahasa pemrograman ini dikenal sebagai bahasa scripting , misalnya PHP.
Demikian pula, bahasa pemrograman lain dirancang dengan fitur-fitur yang oleh desainer bahasa dan komunitas pemrograman dianggap berguna saat menulis program yang relatif besar. Bahasa pemrograman ini dikenal sebagai bahasa sistem , misalnya Java.
Sekarang, program kecil dan besar dapat ditulis dalam bahasa apa pun. Program Java kecil adalah skrip. Misalnya, program Java "Hello World" adalah skrip, bukan sistem. Sebuah program besar, atau kumpulan program, yang ditulis dalam PHP adalah sebuah sistem. Misalnya, Facebook, yang ditulis dalam PHP, adalah sebuah sistem, bukan skrip.
Mempertimbangkan fitur bahasa tunggal sebagai "uji lakmus" untuk memutuskan apakah bahasa tersebut paling cocok untuk skrip atau pemrograman sistem patut dipertanyakan. Misalnya, skrip dapat dikompilasi menjadi kode byte atau kode mesin, atau dapat dieksekusi dengan interpretasi pohon sintaksis abstrak (AST) langsung.
Jadi, bahasa adalah bahasa skrip jika biasanya digunakan untuk menulis skrip . Bahasa skrip mungkin digunakan untuk menulis sistem, tetapi aplikasi semacam itu cenderung dianggap meragukan.
sumber