" esac
" ยุติการ "" ก่อนหน้านี้case
ในรูปแบบ " รหัสบล็อก "
ใน Algol68 มีการใช้งานโดยทั่วไปลำดับอักขระย้อนกลับของคำสำคัญที่แนะนำจะใช้สำหรับการยกเลิกสิ่งที่แนบมาเช่น ( if ~ then ~ else ~ fi, case ~ in ~ out ~ esac, for ~ while ~ do ~ od ).
ฉันจะเรียกพวกเขาว่า "เตรียมพร้อมบล็อก" หลังจากEdsger Dijkstraของเขาและเตรียมพร้อมภาษาคำสั่ง
od
คงจะไม่ได้ถูกนำมาใช้ในบอร์นเชลล์เพราะก่อนการดำรงอยู่ของระบบปฏิบัติการยูนิกซ์"od คำสั่ง"
ประวัติศาสตร์:
แนวคิด "Guarded Block" นั้นมาจาก ALGOL 68เช่นภาษาอังกฤษ:
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;
ของโซเวียตการดำเนิน Algol68 LGUก็ทำเช่นเดียวกัน: ในคำสั่งกรณีที่อ่อนภาษาอังกฤษ Algol68 อ่านcase ~ in ~ out ~ esac
ใน Cyrillic выб ~ в ~ либо ~ быв
นี้อ่าน
จากนั้นในปี 1975 Algol68 รหัสบล็อกถูกยืมโดยEdsger Dijkstraเขาเตรียมพร้อมภาษาคำสั่ง เช่น
if a ≥ b → max := a
| b ≥ a → max := b
fi
สันนิษฐาน Dijstra ใช้ "เตรียมพร้อมบล็อก" ที่จะเอาชนะDangling อื่นคลุมเครือดำเนินการในAlgol60แล้วการออกแบบใหม่ในภาษาซี (เปรียบเทียบความขัดแย้งลดกะ )
สุดท้าย - จาก Algol68 - " esac
" ทำให้มันเป็น 1977 เปลือกบอร์น (ที่คุณค้นพบesac
) มารยาทของสตีเฟ่นอาร์บอร์นที่ได้รับการพัฒนาคอมไพเลอร์ Algol68 ต้นเรียกว่าALGOL 68C
ชื่อเสียงสตีเฟ่นยังใช้ Guarded Blocks เดียวกันนี้ใน "ไฟล์ส่วนหัว C" ชื่อmacro.h
#define IF if(
#define THEN ){
#define ELSE } else {
#define ELIF } else if (
#define FI ;}
อัจฉริยะด้านซอฟต์แวร์ที่โดดเด่นLandon Curt NollและLarry Basselสะดุดกับรหัส macro.h ของ Steve ในปี 1984 ในขณะที่ใช้งานในกลุ่ม porting Genix ของ National Semiconductor และพยายามที่จะเข้าใจการใช้งาน ดังนั้น Landon & Larry จึงสร้างการประกวด C International Obfuscated C ...
ตั้งแต่ปี 1984 จนถึงปัจจุบันมีภาษาการเขียนโปรแกรม "ดีกว่า" อื่น ๆ อีกหลายพันภาษาที่ไม่ได้ใช้คำสั่ง Guarded ของ Dijkstra และการใช้งานของ Steven Bourne ในmacro.h
ตอนนี้มักถูกอ้างถึงใน "วิทยานิพนธ์การพัฒนาซอฟต์แวร์" ของนักศึกษาระดับปริญญาตรีด้านไอทีเพื่อพิสูจน์ว่าพวกเขาไม่ได้นอนในการบรรยาย :-)
esac
คะแนนตรงตามที่ควร - ไปยังบรรทัดที่กำหนดและแสดงให้เห็นว่าจำเป็นต้องใช้