คำถามยอดนิยม
ไทมไลน์
แชท
มุมมอง
ภาษาซิมูลา
จากวิกิพีเดีย สารานุกรมเสรี
Remove ads
ภาษาซิมูลา (Simula) เป็นชื่อเรียกรวมของภาษาโปรแกรมคอมพิวเตอร์ 2 ภาษาคือ ภาษาซิมูลา 1 (Simula 1) และภาษาซิมูลา 67 (Simula 67) ภาษาโปรแกรมดังกล่าวนี้ได้เริ่มพัฒนาขึ้นประมาณปี พ.ศ. 2503 เป็นต้นมาที่ "ศูนย์คอมพิวเตอร์นอร์เวย์" (Norwegian Computing Center) ที่นครออสโลโดย โอล-โยฮาน ดาห์ล และ คริสเตน ไนกาอาร์ด ในเชิงวากยสัมพันธ์ยังนับได้ว่าเป็นชุดภาษาโปรแกรมชุด "อัลกอล 60" (Algol 60) ที่เชื่อถือได้มากที่สุดอยู่
ภาษาซิมูลา 67 แนะให้ใช้วัตถุหรืออ็อบเจกต์ คลาส (class) ซับคลาส (subclasses) เวอร์ชวลเมธอด (virtual method) โครูทีน (coroutine) การกวาดล้างข้อมูลขยะ (garbage collection) และเหตุการณ์จำลองไม่ต่อเนื่อง (discrete event simulation)
ซึ่งซิมูลาได้รับการยอมรับว่าเป็นการเขียนภาษาโปรแกรมเชิงอ็อบเจกต์รุ่นแรกสุด แม้บางครั้งแบบจำลองอ็อบเจกต์อาจไม่สมบูรณ์ ดังที่ชื่อของมันบ่งบอกเป็นนัยอยู่ โปรแกรมซิมูลาได้แรกเริ่มออกแบบมาก็เพื่อการจำลองซึ่งก็ได้มีการใช้เนื้อหาของมันมาเป็นพื้นฐาน หรือกรอบงานสำหรับการออกแบบภาษาโปรแกรมเชิงอ็อบเจกต์ทั้งหลายที่ใช้อยู่ในปัจจุบัน
แม้ในปัจจุบันโปรแกรมซิมูลายังมีการนำมาใช้อยู่อย่างกว้างขวาง เช่นการจำลองการออกแบบ VLSI โปรแกรมกระบวนการ (processes) โพรโทคอล ภาษาขั้นตอนวิธี และการประยุกต์อื่นๆ เช่นการเรียงพิมพ์ เรขนิเทศคอมพิวเตอร์และด้านการศึกษา เนื่องจากอ็อบเจกต์เชิงซิมูลาได้ถุกนำมาประยุกต์ซ้ำใน ภาษา C++ อิทธิพลของซิมูลาจึงได้รับการกล่าวถึงความสำคัญน้อยกว่าความเป็นจริง
Remove ads
ประวัติ
โค้ดอย่างง่าย
สรุป
มุมมอง
โปรแกรมอย่างน้อยที่สุด
โปรแกรมอย่างน้อยที่สุด(มินิมัล)ของSimula คือไฟล์ว่างเปล่า ซึ่งมีองค์ประกอบเพียง ; (ดัมมี่สเตทเมนท์) เพียงอย่างเดียว. แต่โปรแกรมอย่างน้อยที่สุดก็มักจะเขียนเป็นบล็อกว่างเปล่าตามความนิยมด้วยเช่นกัน
Begin End;
โปรแกรมนี้เริ่มรันและจบลงทันที. โดยในภาษาSimulaจะไม่มีการรีเทิร์นค่าเมื่อจบโปรแกรม.
คลาสสิกเฮลโลเวิลด์
โปรแกรมภาษาSimulaแบ่งแยกตัวอักษรเล็กและใหญ่(เคสเซนสิทีฟ) ตัวอย่างต่อไปนี้คือโปรแกรมเฮลโลเวิลด์ในภาษาSimula
Begin
OutText ("Hello World!");
Outimage;
End;
ชั้น, ชั้นย่อย, และวิธีการเสมือน
A more realistic example with use of classes, subclasses and virtual methods:
Begin
Class Glyph;
Virtual: Procedure print Is Procedure print;;
Begin
End;
Glyph Class Char (c);
Character c;
Begin
Procedure print;
OutChar(c);
End;
Glyph Class Line (elements);
Ref (Glyph) Array elements;
Begin
Procedure print;
Begin
Integer i;
For i:= 1 Step 1 Until UpperBound (elements, 1) Do
elements (i).print;
OutImage;
End;
End;
Ref (Glyph) rg;
Ref (Glyph) Array rgs (1 : 4);
! Main program;
rgs (1):- New Char ('A');
rgs (2):- New Char ('b');
rgs (3):- New Char ('b');
rgs (4):- New Char ('a');
rg:- New Line (rgs);
rg.print;
End;
Remove ads
อ้างอิง
- Compiling Simula เก็บถาวร 2007-03-11 ที่ เวย์แบ็กแมชชีน Early history of the development of Simula by Jan Rune Holmevik
- IBM System 360/370 Compiler and Historical Documentation เก็บถาวร 2017-07-12 ที่ เวย์แบ็กแมชชีน The Simula Standard and other historical documentation by Peter Sylvester
ดูเพิ่ม
แหล่งข้อมูลอื่น
- Introduction to OOP in Simula - By J.Sklenar, based on the 1997 seminar "30 Years of Object Oriented Programming (OOP)" at the U. of Malta
- How Object-Oriented Programming Started เก็บถาวร 2010-01-05 ที่ เวย์แบ็กแมชชีน - By Dahl and Nygaard, abbrev. version of an encyclopedia article; on Nygaards home page
- Simula at the University of Montreal Includes tutorials, documentation, and links in English and in French
- An Introduction to Programming in Simula เก็บถาวร 2007-02-03 ที่ เวย์แบ็กแมชชีน A textbook by Rob Pooley now available as HTML
Remove ads
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads