Pseudocode, seperti namanya, bukan kode asli, tetapi sepertinya kode. Ini membantu orang untuk memahami domain masalah atau solusi dengan lebih baik tanpa harus menambahkan semua bagasi yang diperlukan saat menggunakan bahasa nyata.
Singkatnya: ini hanya digunakan untuk tujuan ilustrasi.
Pseudocode dan pemrograman
Tidak ada definisi atau aturan tetap dari pseudocode, ini bisa berbeda setiap kali. Ini bukan bahasa pemrograman (nyata) dan tidak ada yang akan menganggapnya satu. Itu tidak dapat dikompilasi atau digunakan sebagai bahasa pemrograman nyata: jika Anda bisa melakukan itu, itu tidak lagi menjadi kodesemu. Pseudocode tidak perlu bersifat deterministik (suatu keharusan bagi komputer untuk dikompilasi), melainkan harus dipahami oleh manusia. Untuk menggunakan pseudocode, Anda harus mengonversinya ke bahasa pemrograman favorit Anda. Proses konversi ini dapat berbeda setiap kali dan tidak ada aturan yang dapat diberikan untuk itu karena, sekali lagi, kodesemu seperti kebebasan berbicara: ia dapat mengambil bentuk apa pun.
Penggunaan
Ini biasanya digunakan, terutama dalam tahap desain proyek untuk membantu memahami pendekatan tertentu terhadap suatu masalah. Ini juga biasa digunakan dalam desain algoritma, atau ketika guru menggambar sesuatu di papan tulis. Dalam semua kasus ini tidak perlu mengkompilasi kode, Anda hanya ingin memahami masalah / solusi.
Jenis pseudocode
Pseudocode dapat berupa, tetapi tidak harus dari jenis tertentu, yaitu, Anda dapat memiliki pseudocode berbasis stack untuk menggambarkan MSIL, Anda dapat memiliki pseudocode imperatif untuk menggambarkan Java, C #, C ++, Python, Anda dapat memiliki kodesemu fungsional untuk menggambarkan F #, Haskell, SQL dll.
Contoh
Dari atas kepala saya, tetapi apa pun berjalan, karena pseudocode dapat ditemukan di tempat:
XML pseudocode, menampilkan struktur head + body yang memungkinkan untuk beberapa elemen-p:
<head ...
<title ...
</
<body ...>
(<p>...)+
</
Pseudocode imperatif, menunjukkan masalah berlian dalam bahasa yang mendukung banyak pewarisan:
class A() { readFile(); }
class B() : A {} // overrides readFile in A
class C() : A {} // overrides readFile in A
class D() : B, C {} // what definition of readFile should be used?
Dua contoh di atas jelas menyerupai beberapa (jenis) bahasa, tetapi tidak benar - benar bahasa itu dan tidak mungkin dikompilasi. Mereka lebih menggambarkan sesuatu yang ingin Anda jelaskan.