" esac
" Mengakhiri " " sebelumnya case
untuk membentuk " blok kode ".
Dalam Algol68 mereka digunakan, umumnya urutan karakter terbalik dari kata kunci pengantar digunakan untuk mengakhiri enklosur, misalnya ( if ~ then ~ else ~ fi, case ~ in ~ out ~ esac, for ~ while ~ do ~ od ).
Saya akan memanggil mereka "Blok-blok yang Dilindungi" setelah Edsger Dijkstra dan Bahasa Komando yang dijaga .
od
mungkin tidak digunakan di Shell Bourne karena pra-keberadaan perintah "od" Unix .
Sejarah:
Gagasan "Guarded Block" tampaknya berasal dari ALGOL 68 misalnya Bahasa Inggris:
proc days in month = (int year, month)int:
case month in
31,
if year mod 4=0 ∧ year mod 100≠0 ∨ year mod 400=0 then 29 else 28 fi,
31, 30, 31, 30, 31, 31, 30, 31, 30, 31
esac;
Implementasi LGU Algol68 Soviet melakukan hal yang sama: Dalam bahasa Inggris, pernyataan kasus Algol68 yang penuh hormat berbunyi case ~ in ~ out ~ esac
, dalam Cyrillic ini berbunyi выб ~ в ~ либо ~ быв
.
Kemudian pada tahun 1975, kode-blok Algol68 dipinjam oleh Edsger Dijkstra untuk Bahasa Perintah yang dijaga . misalnya
if a ≥ b → max := a
| b ≥ a → max := b
fi
Agaknya Dijstra digunakan "Dijaga Blok" untuk mengatasi Menggantung lain ambiguitas dilaksanakan di Algol60 dan kemudian kembali direkayasa dalam Pemrograman C Bahasa . (lih. shift-kurangi konflik. )
Akhirnya - dari Algol68 - " esac
" berhasil masuk ke cangkang Bourne 1977 (tempat Anda menemukan esac
) milik Stephen R. Bourne yang telah mengembangkan kompiler Algol68 awal yang disebut ALGOL 68C .
Stephen yang terkenal juga menggunakan Blok yang dijaga yang sama ini dalam "file header C" yang disebut macro.h
#define IF if(
#define THEN ){
#define ELSE } else {
#define ELIF } else if (
#define FI ;}
Jenius perangkat lunak terkenal Landon Curt Noll dan Larry Bassel menemukan kode makro.h Steve pada tahun 1984 ketika dipekerjakan di kelompok porting Genix National Semiconductor dan berjuang untuk memahami penerapannya. Maka Landon & Larry kemudian menciptakan Kontes Kode C Internasional yang Dikaburkan ...
Dari 1984 hingga hari ini telah ada beberapa ribu bahasa pemrograman "lebih baik" lainnya yang tidak menggunakan Perintah Dijkstra's Guarded. Dan penggunaannya oleh Steven Bourne macro.h
sekarang sering dikutip dalam "Disertasi Pengembangan Perangkat Lunak" dari mahasiswa IT sebagai bukti bahwa mereka tidak tidur dalam kuliah. :-)
esac
titik tepat di mana seharusnya - ke garis yang mendefinisikannya dan menggambarkan bahwa itu diperlukan.