กลับไปหน้าบทความ

อ่าน 3 นาที

GEORGE (ภาษาโปรแกรม)

การบำรุงรักษา CS1: ตำแหน่งไม่มีผู้เผยแพร่/ภาษาโปรแกรม/ภาษาโปรแกรมที่สร้างขึ้นในปี 1957/ภาษาโปรแกรมเชิงสแต็ก/ใช้วันที่ dmy ตั้งแต่เดือนกรกฎาคม 2020

GEORGE (General Order Generator) เป็นภาษาโปรแกรมที่คิดค้นโดยCharles Leonard Hamblinในปี 1957 มันถูกออกแบบโดยใช้สแต็กแบบ push - down pop-up สำหรับการดำเนินการทางคณิตศาสตร์...

GEORGE (ภาษาโปรแกรม)

GEORGE (General Order Generator) เป็นภาษาโปรแกรมที่คิดค้นโดยCharles Leonard Hamblinในปี 1957 [ 1 ] [ 2 ] [ 3 ] [ 4 ] มันถูกออกแบบโดยใช้สแต็กแบบ push - down pop-up สำหรับการดำเนินการทางคณิตศาสตร์ และใช้สัญกรณ์แบบโปแลนด์ย้อนกลับ [ 5 ] ภาษานี้ประกอบด้วยลูปซับรูทีนเงื่อนไขเวกเตอร์และเมทริกซ์

คำอธิบาย

นิพจน์พีชคณิตถูกเขียนในรูปแบบสัญกรณ์โปแลนด์แบบย้อนกลับ ดังนี้เอ+{\displaystyle a+b}มีการเขียนไว้a b +เช่นนั้น และเช่นเดียวกันสำหรับการดำเนินการทางคณิตศาสตร์อื่นๆ เช่น การลบ การคูณ และการหาร

นิพจน์พีชคณิตเอx2+x+ซี{\displaystyle ax^{2}+bx+c}เขียนa x dup × × b x × + c +ว่า โดยที่ ' dup' หมายถึง 'ทำซ้ำค่า'

ตามรูปแบบภาษาโปแลนด์แบบย้อนกลับ คำสั่งกำหนดค่าเพื่อประเมินสูตรy=เอx2+x+ซี{\displaystyle y=ax^{2}+bx+c}ถูกเขียนไว้ว่าa x dup × × b x × + c + (y).

คอมพิวเตอร์ประเมินนิพจน์ดังนี้: ค่าของa, จากนั้นx, ถูกผลักไปไว้ด้านบนสุดของสแต็กสะสม ; ' dup' ทำให้สำเนาของค่าสูงสุด ( x) ถูกผลักไปไว้ด้านบนสุดของสแต็กสะสม; การคูณ ( ×) ทำให้ค่าสองค่าบนสุด คือxและxถูกลบออก (popped) และคูณกัน โดยส่งผลลัพธ์กลับไปที่ด้านบนสุดของสแต็กสะสม การคูณครั้งที่สอง ( ×) ทำให้ค่าสองค่าบนสุดในสแต็ก (คือaและx**2) ถูกลบออกและคูณกัน และผลลัพธ์ ( a×x**2) ถูกผลักไปไว้ด้านบนสุดของสแต็กสะสม และทำเช่นนี้กับส่วนประกอบที่เหลือของนิพจน์ การดำเนินการสุดท้าย คือ ( y) ส่งคืนค่าของนิพจน์ไปยังหน่วยเก็บข้อมูลโดยไม่เปลี่ยนแปลงสถานะของสแต็กสะสม

หากสมมติว่าค่าบนสุดของสแต็กสะสมไม่จำเป็นต้องใช้ทันที ค่าดังกล่าวจะถูกลบออก (ล้าง) โดยใช้ตัวดำเนินการ ( ;)

โปรแกรมต่อไปนี้จะอ่านค่าแปดค่าและคำนวณผลรวมของค่าเหล่านั้น:

0, 1, 8 รีพ (จ) อาร์ + ] (ป) 
บรรทัดแรกเป็นการเริ่มต้นผลรวมโดยการผลักค่าศูนย์เข้าไปที่ด้านบนสุดของสแต็กตัวสะสม
บรรทัดที่สองเป็นการแนะนำลูป โดยอ่านว่า "for 1 to 8 repeat for j" และปิดท้ายด้วยวงเล็บเหลี่ยม
ในบรรทัดที่สาม ตัวอักษร R จะทำให้มีการอ่านตัวเลขหนึ่งตัวและผลักเข้าไปที่ด้านบนสุดของสแต็กสะสม และเครื่องหมายบวก (+) จะทำให้ค่าดังกล่าวถูกบวกเข้ากับผลรวม (บางส่วน) ทำให้เหลือเพียงผลรวมบางส่วนอยู่ที่ด้านบนสุดของสแต็กสะสม
หลังจากลูปสิ้นสุดลง (P) จะทำให้ผลรวมสุดท้ายถูกตอกลงบนบัตร

การจัดการเวกเตอร์และเมทริกซ์ต้องใช้สัญกรณ์ตัวห้อย ในภาษา GEORGE ตัวห้อยจะอยู่หน้าชื่อเวกเตอร์หรือเมทริกซ์ ดังนั้น A(j) จึงเขียนว่าj | Aโปรแกรมต่อไปนี้อ่านเวกเตอร์aที่มีค่า 10 ค่า จากนั้นคำนวณกำลังสองของค่าเหล่านั้น และสุดท้ายพิมพ์ค่าเหล่านั้นออกมา

1, 10 R1 (ก) 1, 10 รีพ (จ) j | a dup * j | (a) ; ] 1, 10 P1 (ก) 
ในโปรแกรม บรรทัดแรกเป็นเวกเตอร์อ่านค่าที่อ่านค่าทั้งสิบค่าลงใน a(1) ถึง a(10)
บรรทัดที่สองเป็นการสร้างลูปเพื่อวนซ้ำค่า j ทั้งสิบค่า
บรรทัดที่สามดึงค่า a(j) มา ทำซ้ำค่าดังกล่าว คูณค่าทั้งสองนั้นเพื่อให้ได้ค่ากำลังสอง แล้วจึงเก็บค่ากำลังสองนั้นไว้ใน a(j) โปรดสังเกตเครื่องหมายเซมิโคลอน (;) ซึ่งจะล้าง (หรือยกเลิก) ค่าแรกสุดในสแต็กสะสม หากไม่ทำเช่นนี้ ตัวสะสมจะค่อยๆ เต็มไปด้วยค่ากำลังสองของค่าต่างๆ
บรรทัดสุดท้ายคือคำสั่งเวกเตอร์ (เช่น การพิมพ์) เพื่อเขียนสี่เหลี่ยมจัตุรัสทั้งสิบช่องออกมา
ตารางการเข้ารหัส GEORGE [ 6 ]
1234567815
0/016เอq(ก)(q)บันทึกอาร์
1,//117(ข)(ร)เอ็กซ์(ป)
2;~218ซี(ค)(s)พลัง
3*&319ที(ง)(ต)เรม
4420อีคุณ(e)(u)รากที่สอง
5+]521เอฟวี(ฉ)(v)บาป
6-622จี(ก)(ว)คอส
7×723ชม.x(ชม)(x)
8÷ตัวแทน824ฉันy(ฉัน)(y)อาร์1
9เชิงลบฉัน925เจz(จ)(ซ)พี1
10ม็อด1026เคα(ก)(α)อาร์11
11สูงสุด1127เบต้า(ล)(เบตา)พี11
12ซ้ำ1228γ(ม)(γ)
13รีฟ1329nλ(น)(λ)
14=1430Θμ(Θ)(μ)
15>1531พีω(ป)(ω)

ตารางการเข้ารหัส GEORGE ด้านบนช่วยในการถอดโปรแกรมลงบนบัตรเจาะรู

การดำเนินการแบบมีเงื่อนไขถูกเขียนในรูปแบบของการกระโดด ดังนี้: ถ้า a > 0 ให้ไปที่ 5 (ซึ่งจะย้ายไปยังป้ายกำกับ 5 ถ้า a มากกว่าศูนย์) จะเขียนได้ดังนี้

0 a > 5 ↑

ป้ายกำกับ 5 ระบุโดยการใส่ *5 ไว้ที่อื่นในโปรแกรม การโอนเงินแบบไม่มีเงื่อนไขเขียนว่า 5↑

การเรียกใช้ซับรูทีนทำได้โดยใช้ลูกศรลง เช่น หากต้องการเรียกใช้ซับรูทีนหมายเลข 17 ให้เขียน 17↓ โดยที่หมายเลข 17 นั้นเข้ารหัสโดยใช้คอลัมน์ที่ 3 ของตารางด้านบน

บันทึกทางประวัติศาสตร์

ในเวอร์ชันแรกที่ใช้งานได้ในเดือนพฤษภาคม 1957 บนเครื่องEnglish Electric DEUCEค่าทั้งหมดจะถูกจัดเก็บในรูปแบบเลขฐานสองแบบคงที่ในคำ 32 บิต โดยมีตำแหน่งเลขฐานสอง 16 ตำแหน่ง

ในเวอร์ชันที่สองซึ่งเปิดตัวในปี 1958 ค่าต่างๆ จะถูกจัดเก็บในรูปแบบเลขทศนิยม โดยมีหนึ่งค่าต่อหนึ่งคำ: 22 บิตสำหรับแมนทิสซาและ 10 บิตสำหรับเลขชี้กำลัง

จำเป็นต้องมีตารางรหัสเนื่องจากอุปกรณ์การพิมพ์ในสมัยนั้นพิมพ์ได้เพียง 26 ตัวอักษร จุดทศนิยม เครื่องหมายบวก เครื่องหมายลบ และเครื่องหมายทับเท่านั้น

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=GEORGE_(programming_language)&oldid=1343130810 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ GEORGE (ภาษาโปรแกรม)

GEORGE (General Order Generator) เป็นภาษาโปรแกรมที่คิดค้นโดยCharles Leonard Hamblinในปี 1957 มันถูกออกแบบโดยใช้สแต็กแบบ push - down pop-up สำหรับการดำเนินการทางคณิตศาสตร์...

คำอธิบาย

นิพจน์พีชคณิตถูกเขียนในรูปแบบสัญกรณ์โปแลนด์แบบย้อนกลับ ดังนี้ เอ + ข {\displaystyle a+b} มีการเขียนไว้ a b + เช่นนั้น และเช่นเดียวกันสำหรับการดำเนินการทางคณิตศาสตร์อื่นๆ เช่น การลบ การคูณ และการหาร

บันทึกทางประวัติศาสตร์

ในเวอร์ชันแรกที่ใช้งานได้ในเดือนพฤษภาคม 1957 บนเครื่อง English Electric DEUCE ค่าทั้งหมดจะถูกจัดเก็บในรูปแบบเลขฐานสองแบบคงที่ในคำ 32 บิต โดยมีตำแหน่งเลขฐานสอง 16 ตำแหน่ง