ภาษาซิมูลา (Simula) เป็นชื่อเรียกรวมของภาษาโปรแกรมคอมพิวเตอร์ 2 ภาษาคือ (Simula 1) และ (Simula 67) ภาษาโปรแกรมดังกล่าวนี้ได้เริ่มพัฒนาขึ้นประมาณปี พ.ศ. 2503 เป็นต้นมาที่ "" (Norwegian Computing Center) ที่นครออสโลโดย และ ในเชิงวากยสัมพันธ์ยังนับได้ว่าเป็นชุดภาษาโปรแกรมชุด "" (Algol 60) ที่เชื่อถือได้มากที่สุดอยู่
ภาษาซิมูลา 67 แนะให้ใช้วัตถุหรือ คลาส (class) (subclasses) เวอร์ชวลเมธอด (virtual method) โครูทีน (coroutine) การกวาดล้างข้อมูลขยะ (garbage collection) และเหตุการณ์จำลองไม่ต่อเนื่อง (discrete event simulation)
ซึ่งซิมูลาได้รับการยอมรับว่าเป็นการเขียนภาษาโปรแกรมเชิงอ็อบเจกต์รุ่นแรกสุด แม้บางครั้งแบบจำลองอ็อบเจกต์อาจไม่สมบูรณ์ ดังที่ชื่อของมันบ่งบอกเป็นนัยอยู่ โปรแกรมซิมูลาได้แรกเริ่มออกแบบมาก็เพื่อการจำลองซึ่งก็ได้มีการใช้เนื้อหาของมันมาเป็นพื้นฐาน หรือกรอบงานสำหรับการออกแบบภาษาโปรแกรมเชิงอ็อบเจกต์ทั้งหลายที่ใช้อยู่ในปัจจุบัน
แม้ในปัจจุบันโปรแกรมซิมูลายังมีการนำมาใช้อยู่อย่างกว้างขวาง เช่นการจำลองการออกแบบ VLSI โปรแกรมกระบวนการ (processes) โพรโทคอล ภาษาขั้นตอนวิธี และการประยุกต์อื่นๆ เช่นการเรียงพิมพ์ และด้านการศึกษา เนื่องจากอ็อบเจกต์เชิงซิมูลาได้ถุกนำมาประยุกต์ซ้ำใน อิทธิพลของซิมูลาจึงได้รับการกล่าวถึงความสำคัญน้อยกว่าความเป็นจริง
ประวัติ
โค้ดอย่างง่าย
โปรแกรมอย่างน้อยที่สุด
โปรแกรมอย่างน้อยที่สุด(มินิมัล)ของ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;
อ้างอิง
- 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
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
phasasimula Simula epnchuxeriykrwmkhxngphasaopraekrmkhxmphiwetxr 2 phasakhux Simula 1 aela Simula 67 phasaopraekrmdngklawniiderimphthnakhunpramanpi ph s 2503 epntnmathi Norwegian Computing Center thinkhrxxsolody aela inechingwakysmphnthyngnbidwaepnchudphasaopraekrmchud Algol 60 thiechuxthuxidmakthisudxyu phasasimula 67 aenaihichwtthuhrux khlas class subclasses ewxrchwlemthxd virtual method okhruthin coroutine karkwadlangkhxmulkhya garbage collection aelaehtukarncalxngimtxenuxng discrete event simulation sungsimulaidrbkaryxmrbwaepnkarekhiynphasaopraekrmechingxxbecktrunaerksud aembangkhrngaebbcalxngxxbecktxacimsmburn dngthichuxkhxngmnbngbxkepnnyxyu opraekrmsimulaidaerkerimxxkaebbmakephuxkarcalxngsungkidmikarichenuxhakhxngmnmaepnphunthan hruxkrxbngansahrbkarxxkaebbphasaopraekrmechingxxbecktthnghlaythiichxyuinpccubn aeminpccubnopraekrmsimulayngmikarnamaichxyuxyangkwangkhwang echnkarcalxngkarxxkaebb VLSI opraekrmkrabwnkar processes ophrothkhxl phasakhntxnwithi aelakarprayuktxun echnkareriyngphimph aeladankarsuksa enuxngcakxxbecktechingsimulaidthuknamaprayuktsain phasa C xiththiphlkhxngsimulacungidrbkarklawthungkhwamsakhynxykwakhwamepncringprawtiokhdxyangngayopraekrmxyangnxythisud opraekrmxyangnxythisud miniml khxngSimula khuxiflwangepla sungmixngkhprakxbephiyng dmmisetthemnth ephiyngxyangediyw aetopraekrmxyangnxythisudkmkcaekhiynepnblxkwangeplatamkhwamniymdwyechnkn Begin End opraekrmnierimrnaelacblngthnthi odyinphasaSimulacaimmikarriethirnkhaemuxcbopraekrm khlassikehlolewild opraekrmphasaSimulaaebngaeyktwxksrelkaelaihy ekhsesnsithif twxyangtxipnikhuxopraekrmehlolewildinphasaSimula Begin OutText Hello World Outimage End chn chnyxy aelawithikaresmuxn 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 xangxingCompiling Simula 2007 03 11 thi ewyaebkaemchchin Early history of the development of Simula by Jan Rune Holmevik IBM System 360 370 Compiler and Historical Documentation 2017 07 12 thi ewyaebkaemchchin The Simula Standard and other historical documentation by Peter SylvesterduephimkarekhiynopraekrmechingwtthuaehlngkhxmulxunIntroduction 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 thi ewyaebkaemchchin 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 thi ewyaebkaemchchin A textbook by Rob Pooley now available as HTML bthkhwamkarekhiynopraekrm hrux phasaopraekrmniyngepnokhrng khunsamarthchwywikiphiediyidodykarephimetimkhxmuldk