Saya telah mendengar tentang hal-hal seperti "C Runtime", "Visual C ++ 2008 Runtime", ".NET Common Language Runtime", dll.
- Apa itu " runtime " sebenarnya?
- Terbuat dari apa?
- Bagaimana cara berinteraksi dengan kode saya? Atau mungkin lebih tepatnya, bagaimana kode saya dikontrol olehnya?
Saat mengkode bahasa assembly di Linux, saya bisa menggunakan instruksi INT untuk melakukan panggilan sistem. Jadi, apakah runtime tidak lebih dari sekelompok fungsi pra-pabrikasi yang membungkus fungsi tingkat rendah menjadi fungsi yang lebih abstrak dan tingkat tinggi? Tapi bukankah ini lebih seperti definisi untuk perpustakaan, bukan untuk runtime?
Apakah "runtime" dan " runtime library " adalah dua hal yang berbeda?
TAMBAH 1
Saat ini, saya berpikir mungkin Runtime memiliki kesamaan dengan yang disebut dengan Virtual Machine , seperti JVM. Inilah kutipan yang mengarah pada pemikiran seperti itu:
Proses kompilasi ini cukup kompleks untuk dipecah menjadi beberapa lapisan abstraksi, dan ini biasanya melibatkan tiga penerjemah: kompiler, implementasi mesin virtual, dan assembler. --- Elemen Sistem Komputasi (Pendahuluan, Jalan Menuju Ke Tanah Perangkat Keras)
ADD 2
Buku Expert C Programming: Deep C Secrets . Bab 6 Struktur Data Runtime adalah referensi yang berguna untuk pertanyaan ini.
sumber
runtime library
plus beberapa kode kontrol dan dan beberapa keadaan (disediakan oleh OS).Jawaban:
Runtime menjelaskan perangkat lunak / instruksi yang dijalankan saat program Anda berjalan, terutama instruksi yang tidak Anda tulis secara eksplisit, tetapi diperlukan untuk pelaksanaan kode Anda dengan benar.
Bahasa tingkat rendah seperti C memiliki runtime yang sangat kecil (jika ada). Bahasa yang lebih kompleks seperti Objective-C, yang memungkinkan untuk pengiriman pesan dinamis, memiliki runtime yang jauh lebih luas.
Anda benar bahwa kode runtime adalah kode pustaka, tetapi kode pustaka adalah istilah yang lebih umum, yang menggambarkan kode yang dihasilkan oleh pustaka mana pun . Kode runtime secara khusus kode yang diperlukan untuk mengimplementasikan fitur-fitur bahasa itu sendiri.
sumber
Runtime adalah istilah umum yang merujuk pada pustaka, kerangka kerja, atau platform apa pun yang dijalankan oleh kode Anda.
Runtime C dan C ++ adalah kumpulan fungsi.
.NET runtime berisi juru bahasa perantara , pengumpul sampah, dan banyak lagi.
sumber
cout
atauprintf
.Sesuai Wikipedia: runtime library / run-time system .
Re: edit , "runtime" dan "runtime library" adalah dua nama berbeda untuk hal yang sama
sumber
Lingkungan runtime atau eksekusi adalah bagian dari implementasi bahasa yang mengeksekusi kode dan hadir pada saat run-time ; bagian waktu kompilasi dari implementasi disebut lingkungan terjemahan dalam standar C.
Contoh:
Java runtime terdiri dari mesin virtual dan perpustakaan standar
runtime C umum terdiri dari loader (yang merupakan bagian dari sistem operasi) dan perpustakaan runtime, yang mengimplementasikan bagian-bagian dari bahasa C yang tidak dibangun ke dalam dieksekusi oleh kompiler; di lingkungan yang dihosting, ini termasuk sebagian besar perpustakaan standar
sumber
Dalam pemahaman saya, runtime adalah persis apa artinya - waktu ketika program dijalankan. Anda dapat mengatakan sesuatu terjadi pada waktu runtime / run atau pada waktu kompilasi.
Saya pikir runtime dan runtime perpustakaan harus (jika mereka tidak) dua hal yang terpisah. "C runtime" sepertinya tidak cocok untuk saya. Saya menyebutnya "C runtime library".
Jawaban untuk pertanyaan Anda yang lain: Saya pikir istilah runtime dapat diperluas untuk menyertakan juga lingkungan dan konteks program saat dijalankan, jadi:
Jawaban ini untuk beberapa orang hanya memperpanjang pendapat saya, bukan fakta atau definisi.
sumber
Matt Ball menjawabnya dengan benar. Saya akan mengatakannya dengan contoh.
Pertimbangkan menjalankan program yang dikompilasi di kompiler Turbo-Borland C / C ++ (versi 3.1 dari tahun 1991) dan biarkan dijalankan di bawah versi windows 32-bit seperti Win 98/2000 dll.
Ini adalah kompiler 16-bit. Dan Anda akan melihat semua program Anda memiliki pointer 16-bit. Mengapa begitu ketika OS Anda 32bit? Karena kompiler Anda telah mengatur lingkungan eksekusi 16 bit dan OS versi 32-bit mendukungnya.
Apa yang biasa disebut sebagai JRE (Java Runtime Environment) menyediakan program Java dengan semua sumber daya yang mungkin perlu dijalankan.
Sebenarnya, lingkungan runtime adalah produk otak dari ide Mesin Virtual. Mesin virtual mengimplementasikan antarmuka mentah antara perangkat keras dan apa yang mungkin perlu dijalankan oleh suatu program. Lingkungan runtime mengadopsi antarmuka ini dan menyajikannya untuk penggunaan programmer. Pengembang kompiler akan membutuhkan fasilitas ini untuk menyediakan lingkungan eksekusi untuk program-programnya.
sumber
Jalankan waktu tepat di tempat kode Anda muncul dan Anda dapat melihat banyak hal penting yang dilakukan kode Anda.
Runtime memiliki tanggung jawab untuk mengalokasikan memori, membebaskan memori, menggunakan sub sistem sistem operasi seperti (Layanan File, Layanan IO .. Layanan Jaringan dll.)
Kode Anda akan disebut "BEKERJA DI TEORI" sampai Anda menjalankan kode Anda secara praktis. dan Runtime adalah teman yang membantu dalam mencapai ini.
sumber
runtime dapat menunjukkan fase saat ini dari kehidupan program (runtime / waktu kompilasi / waktu muat / waktu tautan) atau itu bisa berarti pustaka runtime, yang membentuk tindakan tingkat rendah dasar yang berinteraksi dengan lingkungan eksekusi. atau itu bisa berarti sistem runtime, yang sama dengan lingkungan eksekusi.
dalam kasus program C, runtime adalah kode yang mengatur stack, heap, dll. yang merupakan persyaratan yang diharapkan oleh lingkungan C. pada dasarnya mengatur lingkungan yang dijanjikan oleh bahasa. (bisa memiliki komponen runtime library, crt0.lib atau sesuatu seperti itu dalam kasus C)
sumber
Saya menemukan bahwa struktur folder berikut ini membuat konteks yang sangat luas untuk memahami apa
runtime
itu:Anda dapat melihat bahwa ada ' sumber ', ada ' SDK ' atau 'Perangkat Pengembangan Perangkat Lunak' dan kemudian ada
Runtime
, misalnya. hal-hal yang dijalankan - saat runtime. Isinya seperti:Zip win32 berisi .exe -s dan .dll -s.
Jadi misalnya. runtime C akan menjadi file seperti ini - pustaka runtime C, .so-s atau .dll -s - yang Anda jalankan saat runtime, dibuat khusus dengan dimasukkannya (atau kontennya 'atau tujuan') dalam definisi Bahasa C (di 'kertas'), kemudian diimplementasikan oleh implementasi C pilihan Anda. Dan kemudian Anda mendapatkan runtime dari implementasi itu, untuk menggunakannya dan membangunnya.
Artinya, dengan sedikit polarisasi, file yang dapat dijalankan yang dibutuhkan oleh pengguna program berbasis C baru Anda. Sebagai pengembang program berbasis C, Anda juga demikian, tetapi Anda juga memerlukan kompiler C dan header pustaka C; para pengguna tidak membutuhkannya.
sumber
Runtime pada dasarnya berarti ketika program berinteraksi dengan perangkat keras dan sistem operasi mesin. C tidak memiliki runtime sendiri tetapi sebaliknya, ia meminta runtime dari sistem operasi (yang pada dasarnya merupakan bagian dari ram) untuk mengeksekusi sendiri.
sumber
Jika pemahaman saya dari membaca jawaban di atas adalah benar, Runtime pada dasarnya adalah 'proses latar belakang' seperti pengumpulan sampah, alokasi memori, pada dasarnya setiap proses yang dipanggil secara tidak langsung, oleh perpustakaan / kerangka kerja dimana kode Anda ditulis, dan khususnya yang proses yang terjadi setelah kompilasi, saat aplikasi sedang berjalan.
sumber
Bagian-bagian dari dokumentasi MSDN ini menangani sebagian besar pertanyaan Anda: http://msdn.microsoft.com/en-us/library/8bs2ecf4(VS.71).aspx
Saya harap ini membantu.
Terima kasih, Damian
sumber
Run time adalah contoh di mana Anda tidak tahu tentang jenis objek apa yang dibuat selama pelaksanaannya, pembuatan objek didasarkan pada kondisi tertentu atau beberapa pekerjaan perhitungan. Sebaliknya, waktu kompilasi adalah contoh di mana objek yang diperlukan ditentukan oleh Anda sebelum eksekusi.
sumber
Runtime agak berlawanan dengan waktu desain dan waktu kompilasi / waktu tautan. Secara historis itu berasal dari lingkungan mainframe lambat di mana waktu mesin mahal.
sumber