หลายปีที่ผ่านมาลูกชายคนโตของฉันและฉันได้พัฒนาระบบการเขียนโปรแกรมแบบธรรมดาภาษาอังกฤษและพัฒนาขึ้นเพื่อตอบคำถามต่อไปนี้:
โปรแกรมระดับล่าง (เช่นคอมไพเลอร์) สามารถเขียนได้อย่างสะดวกและมีประสิทธิภาพในภาษาระดับสูง (เช่นภาษาอังกฤษ) หรือไม่?
ภาษาธรรมชาติสามารถแยกวิเคราะห์ในลักษณะ "เลอะเทอะ" และยังคงมีสภาพแวดล้อมที่มีเสถียรภาพเพียงพอสำหรับการเขียนโปรแกรมที่มีประสิทธิผลหรือไม่
การเขียนโปรแกรมง่ายขึ้นหรือไม่เมื่อคุณไม่ต้องแปลความคิดทางภาษาธรรมชาติของคุณเป็นไวยากรณ์ทางเลือก
ตอนนี้เราสามารถตอบคำถามสามข้อนี้จากประสบการณ์ตรงด้วย "ใช่" ดังก้อง
โปรแกรมแยกวิเคราะห์ของเราทำงานเราคิดว่าคล้ายกับสมองของมนุษย์ พิจารณา. พ่อพูดกับลูกชายลูกของเขา:
"ต้องการที่จะดูดขวดนี้คนตัวเล็ก?"
และเด็กได้ยิน
"blah, blah, SUCK, blah, blah, ขวด, blah, blah."
แต่เขาตอบสนองอย่างถูกต้องเพราะเขามี "รูป" ของขวดอยู่ทางด้านขวาของหัวของเขาเชื่อมต่อกับคำว่า "ขวด" ที่ด้านซ้ายและมี "ทักษะ" ที่มีอยู่ก่อนใกล้ด้านหลังของคอของเขาเชื่อมต่อกับ คำว่า "suck" กล่าวอีกนัยหนึ่งเด็กตรงกับสิ่งที่เขาสามารถทำได้กับรูปภาพ (ประเภท) และทักษะ (กิจวัตร) ที่เขาสะสมและไม่สนใจสิ่งที่เหลือ คอมไพเลอร์ของเราทำสิ่งเดียวกันมากด้วยรูปภาพใหม่ (ชนิด) และทักษะ (กิจวัตร) ที่ถูกกำหนดไม่ใช่เรา แต่เป็นโปรแกรมเมอร์โดยเขาเขียนโค้ดแอปพลิเคชันใหม่
นิยามประเภททั่วไปมีลักษณะเช่นนี้:
รูปหลายเหลี่ยมเป็นสิ่งที่มีจุดยอด
ภายในชื่อ "รูปหลายเหลี่ยม" เชื่อมโยงกับโครงสร้างจัดสรรแบบไดนามิกที่มีรายการจุดยอดที่เชื่อมโยงเป็นสองเท่า "Vertex" ถูกกำหนดไว้ที่อื่น (ก่อนหรือหลังคำจำกัดความนี้) ในลักษณะเดียวกัน พหูพจน์จะถูกเข้าใจโดยอัตโนมัติ
รูทีนทั่วไปมีลักษณะดังนี้:
ในการผนวก x coord และ ay coord ให้กับรูปหลายเหลี่ยม: สร้างจุดสุดยอดที่กำหนดให้ x และ y ผนวกจุดยอดเข้ากับจุดยอดของรูปหลายเหลี่ยม
โปรดทราบว่าไม่จำเป็นต้องใช้ชื่อทางการ (คำนามที่เหมาะสม) สำหรับพารามิเตอร์และตัวแปร เราเชื่อว่านี่เป็นข้อมูลเชิงลึกที่สำคัญ เก้าอี้และโต๊ะในโลกแห่งความเป็นจริงของฉันไม่เคยเรียกว่า "c" หรือ "myTable" (ในการสนทนาปกติ) - ฉันเรียกพวกเขาว่า "เก้าอี้" และ "โต๊ะ" เช่นเดียวกันที่นี่: "จุดสุดยอด" และ "รูปหลายเหลี่ยม" เป็นชื่อธรรมชาติสำหรับสิ่งต่าง ๆ
โปรดทราบว่าอนุญาตให้ใช้ช่องว่างในรูทีนและตัวแปร "ชื่อ" (เช่น "x coord") นี่คือศตวรรษที่ 21 ใช่ไหม และอนุญาตให้ใช้ "ชื่อเล่น" (เช่น "x" สำหรับ "x coord") และความเป็นเจ้าของนั้น ("จุดยอดของรูปหลายเหลี่ยม") ถูกนำมาใช้อย่างเป็นธรรมชาติในการอ้างอิง "เขตข้อมูล" ภายใน "บันทึก"
โปรดทราบเช่นกันว่าคำว่า "ที่ให้" อาจเป็น "ใช้" หรือ "กับ" หรือสิ่งอื่นใดที่เทียบเท่ากันเนื่องจากการแยกวิเคราะห์ที่เลอะเทอะของเรามุ่งเน้นไปที่รูปภาพ (ประเภท) และทักษะ (กิจวัตร) ที่จำเป็นสำหรับการทำความเข้าใจ เท่าที่จะทำได้ส่วนที่เหลือ
ในระดับต่ำสุดสิ่งต่าง ๆ เช่นนี้:
ในการเพิ่มหมายเลขไปยังหมายเลขอื่น: Intel $ 8B85080000008B008B9D0C0000000103
โปรดทราบว่าในกรณีนี้เรามีทั้งภาษาสูงสุดและต่ำสุด - ภาษาอังกฤษและรหัสเครื่อง (แม้ว่าจะเป็นเลขฐานสิบหก) - ในรูทีนเดียว ข้อมูลเชิงลึกที่นี่คือ (เช่นหนังสือคณิตศาสตร์ทั่วไป) โปรแกรมควรเขียนขั้นต้นเป็นภาษาธรรมชาติโดยมีตัวอย่างข้อมูลที่เหมาะสมในรูปแบบที่สะดวกยิ่งขึ้นตามที่จำเป็น (และเฉพาะ)
คุณสามารถรับระบบการพัฒนาของเราได้ที่นี่: www.osmosian.com/cal-3040.zip มันเป็นโปรแกรม Windows ขนาดเล็กน้อยกว่าเมกะไบต์ หากคุณเริ่มต้นด้วย PDF ในไดเรกทอรี "เอกสาร" ก่อนที่คุณจะไปสิบหน้าคุณจะต้องรวบรวมข้อมูลทั้งหมดในตัวเองอีกครั้ง (ภายในเวลาไม่ถึงสามวินาทีบนเครื่องด้านล่างสุดของวอลมาร์ท)
คำถามและความเห็นควรส่งถึง gerry.rzeppa@pobox.com