ภาษาการเขียนโปรแกรมรุ่นที่ 4 และ 5 คืออะไร มีอะไรอีกบ้าง? [ปิด]


36

เนื่องจากมันถูกจำแนกในระดับโรงเรียน / วิทยาลัยภาษาการเขียนโปรแกรมยอดนิยม (C #, Java, C ++) เป็นภาษาที่ 3 ทั้งหมด (ด้วยระดับที่สูงกว่าของนามธรรมจากชิ้นส่วนทางกายภาพของเครื่อง) นอกจากนี้ภาษาแอสเซมบลีถูกจัดประเภทเป็นภาษาที่ 2 และภาษาเครื่องเป็นภาษาที่ 1

ตอนแรกฉันคิดว่า SQL ควรถูกพิจารณาว่าเป็นภาษาเจนเนอเรชั่นที่ 4 เพราะมันเป็นนามธรรมและห่างไกลจากรายละเอียดของการวนซ้ำและการอธิบายเพิ่มเติม

ตอนนี้ฉันพบว่ามีภาษารุ่นที่ 4 และรุ่นที่ 5 แต่อะไรคือพื้นฐานของภาษาโปรแกรมหรือเทคโนโลยีใด ๆ ที่จะจัดประเภทเป็นภาษารุ่นที่ 4 หรือ 5

นอกจากนี้ยังมีภาษารุ่นที่ 6 หรือ 7 เช่นกัน?



12
โอ้ถ้าคนเท่านั้นที่สามารถเห็นด้วยกับสิ่งที่ทำให้ภาษา Gen ที่ n ที่ n ... ไม่มีเกณฑ์ใดที่เราสามารถผูกมัดได้อย่างแท้จริง (ยกเว้นจากการกล่าวว่าภาษา gen ที่สูงกว่านั้นจะถูกลบออกจากโลหะเปลือยมากกว่าระดับต่ำกว่า ไม่เห็นด้วย)
Oded

5
"รุ่น" รุ่นใดคือ C คุณสามารถยกตัวอย่างภาษาที่ 4 และ 5 และบอกเราว่าอะไรทำให้แต่ละรุ่น คือเกณฑ์ใดที่กำหนดภาษาเป็น generation 'n'
Mawg

3
Tbh ฉันไม่คิดว่าแนวคิดของภาษารุ่น X มีความเกี่ยวข้องจริงๆ
Pieter B

5
ฉันกำลังสร้างภาษารุ่นที่ 14 และมันจะเป็นพ่อมดที่บริสุทธิ์เพราะมันเป็นลูกชายคนที่เจ็ดของลูกชายคนที่เจ็ด ....
เดวิดคอนราด

คำตอบ:


36

ภาพรวมรุ่นง่าย ๆ : ภาษาเป็นสิ่งที่สร้างขึ้นไม่ได้เมื่อเป็นหน่วยการสร้าง

  1. เกร็ด
  2. คำแนะนำ
  3. การดำเนินงานที่เป็นนามธรรม
  4. วัตถุโดเมน
  5. เป้าหมายโปรแกรม

ดังนั้นแม้ภาษาใหม่ ๆ เช่น Google Go หรือ Apple Swift ก็ยังเป็นรุ่นที่ 3 อย่างแน่นหนา Regex เป็นภาษาที่ตรงกับข้อความซึ่งทำให้เป็นภาษาที่สร้างในช่วงต้นของยุคที่ 4 ตามคำจำกัดความนี้รุ่นที่ 4 จะสอดคล้องกับ DSL อย่างใกล้ชิด อย่างไรก็ตามโปรดทราบว่าภาษาเช่น C ++ สามารถมีประเภทของโลกแห่งความเป็นจริงเช่นLengthและWeightนอกเหนือจากfloatและdoubleซึ่งทำให้พวกเขาเป็นลูกผสมรุ่นที่ 3 / 4th

ภาษารุ่นที่ 5 ไม่มีอยู่จริงเนื่องจากพวกเขาต้องการระดับ AI ที่ไม่เคยปรากฏ ความจริงที่ว่าเรายังคงต้องการโปรแกรมเมอร์เนื่องจากผู้ที่ไม่ใช่โปรแกรมเมอร์ไม่สามารถบอกคอมพิวเตอร์ด้วยความแม่นยำเพียงพอในสิ่งที่พวกเขาต้องการ


1
หมายเหตุเกี่ยวกับย่อหน้าสุดท้าย: บล็อกของ J.Pitratมีสิ่งที่น่าสนใจที่เกี่ยวข้องกับ AI และโปรแกรมเมอร์
Basile Starynkevitch

5
DONALD problemว่าปัญหาบล็อกไฮไลท์ไกลแค่ไหนเราก็ยังคงห่างจากsudo make me a sandwichและไม่แยแสว่าความคืบหน้ามากที่เราได้ทำในช่วง 50 ปีที่ผ่านมา
MSalters

1
@AndrewHoffmann เกิดอะไรขึ้นเนี่ย? หากคุณกำลังสร้างสะพานคุณควรมีวัสดุประเภทที่เหมาะสมสำหรับโครงสร้างของคุณและหมุดจะมีขนาดที่เหมาะสม (และมีขนาดเท่าไร?)
didierc

1
@AndrewHoffman: AI เป็นหัวข้อ CS ในสถาบันการศึกษาไม่ใช่หัวข้อวิศวกรรมซอฟต์แวร์ อาจเป็นที่ถกเถียงกันอยู่ว่าวิศวกรรมที่แท้จริงจะได้รับประโยชน์ อาจมีเหตุผลที่ดีที่รถขับเคลื่อนด้วยตนเองคันแรกดูเหมือนจะเป็นของ Google
MSalters

6
@AndrewHoffman - พูดเพื่อตัวเอง ฉันเป็นวิศวกรซอฟต์แวร์และฉันใช้วิธีปฏิบัติทางวิศวกรรมที่ได้มาตรฐานทุกวัน นอกจากนี้ฉันเป็นวิศวกรที่ได้รับการรับรอง ฉันคิดว่าความคิดเห็นทั้งหมดของคุณนั้นไร้สาระโดยอิงจากประสบการณ์ส่วนตัวของคุณมากกว่าที่จะเป็นจริง
วิศวกร Dollery

88

“ ภาษายุคที่” เป็นคำศัพท์ มันเป็นคำทางการตลาด ไม่มีคำจำกัดความที่ยอมรับกันโดยทั่วไปในสิ่งที่กำหนด "รุ่นที่ n" สำหรับ n> 2 บางคนจัดหมวดหมู่ภาษา "สคริปต์" เช่น Perl หรือ Python เป็น 4GLs เพราะพวกเขามีระดับสูงกว่า C ในขณะที่คนอื่นคิดว่าการกำหนด คุณสมบัติของ 4GL คือพวกเขาเฉพาะโดเมนเช่น SQL nitwits บางคนคิดว่า Java (ภาษากลางยุค 90 ที่เต็มไปด้วยการวางวัตถุและการรวบรวมขยะและการสะท้อน) อยู่ในหมวดหมู่ "3GL" เดียวกับ Fortran (จากยุค 50) และ C (จากยุค 70)

การจัดหมวดหมู่สับสนเช่น "ภาษารุ่นที่ 4" ไม่มีประโยชน์ คุณอาจเห็นมันในตำราเก่าหรือได้ยินจากคนที่เริ่มเขียนโปรแกรมในยุค 80 แต่แท็กเช่น“ 4GL” นั้นไม่มีค่าหากไม่มีคำอธิบายประกอบที่ผู้เขียนมีความหมายอย่างแท้จริง

เนื่องจากไม่มีใครเข้าใจสิ่งที่คุณหมายถึงโดยทันทีโดย "4GL" คุณไม่ควรใช้หมวดหมู่ดังกล่าว ให้ใช้คำเฉพาะเพื่อสื่อสารสิ่งที่คุณหมายถึงอย่างแม่นยำแทน เช่น NASM, LLVM IR และ Jasmin ทั้งหมดเป็นภาษาแอสเซมบลี แต่เป้าหมาย VMs สองอันหลังและอันสุดท้ายคือภาษาการเขียนโปรแกรมเชิงวัตถุ 2GL เหล่านั้นทั้งหมดหรือไม่ SQL เป็นภาษาเฉพาะโดเมนที่เปิดเผยได้บางส่วนสำหรับการสืบค้นฐานข้อมูลจากยุค 80 และ TeX เป็นภาษาเฉพาะโดเมนสำหรับการเรียงพิมพ์จากยุค 70 พวกเขาทั้งสอง 4GLs เพราะเป็นทั้งโดเมนที่เฉพาะเจาะจงมากหรือน้อย?


22
ฉันกำลังพัฒนาภาษา 8G มันจะน่าเหลือเชื่อ ... แม้แต่จูเลียนก็ยังทอด ฉันจะขายใบอนุญาตสำหรับการชำระเงินง่าย ๆ สามครั้งของ ... ;)
BrianH

10
ผมคิดว่าการเขียนโปรแกรมภาษาคนรุ่นใดควรสอดคล้องกับเจ็ทชั่วอายุรบ ความสุดยอดนี้ดูเหมือนจะเพียงพอที่จะให้เหตุผลแก่ RFC ในเรื่องนี้
toniedzwiedz

11
อ่านี่จะนำความทรงจำกลับมาเมื่อภาษายุคที่ห้าจะใช้งานง่ายในไม่ช้าโปรแกรมเมอร์ส่วนใหญ่ก็จะตกงาน
Gort the Robot

5
@Izkata A 1GL เป็นรหัสเครื่องไบนารี (เช่นชุดคำสั่ง amd64) 2GL เป็นภาษาแอสเซมบลีต้นฉบับเดิมที่ให้ความจำสำหรับรหัสเครื่อง (เช่น GAS) 3GL เป็นสิ่งที่ย่อมาจากคำแนะนำเครื่อง Fortran (I + 7) * 3เป็นครั้งแรกที่จะทำเช่นนี้โดยการอนุญาตให้เขียนโปรแกรมเพื่อใช้การแสดงออกและตัวแปรเช่น อย่างไรก็ตามไม่มีความเห็นเป็นเอกฉันท์ว่าหมวดหมู่ 3GL สิ้นสุดลงที่ใดและ 4GL และ 5GL นั้นควรจะหมายถึงอะไรโดยเฉพาะ
amon

5
"nitwits บางคนคิดว่า Java ... อยู่ในหมวดหมู่" 3GL "เช่นเดียวกับ Fortran ... " - ในขณะที่ nitwits อื่น ๆ เชื่อว่าถ้าสองสิ่งที่ปรากฏแตกต่างกันอย่างมากจากพวกมัน รวมกันตามเกณฑ์อะไรก็ตามที่เกี่ยวข้องกับโครงการนั้น? ;-p
Steve Jessop
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.