มีงานวิจัยเกี่ยวกับการเขียนโปรแกรมภาษาศาสตร์หรือไม่?


18

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

ในขณะที่การพัฒนาภาษาโปรแกรมเป็นสิ่งประดิษฐ์กระบวนการวิวัฒนาการทางภาษาธรรมชาติการยืมการผสมระหว่างกันและการกลายพันธุ์ทั้งหมดนั้นมีคู่เทียมที่ค่อนข้างชัดเจน ดังนั้นฉันจึงสงสัยว่า: เคยมีงานวิจัยขนาดใหญ่ที่เจาะลึกเกี่ยวกับวิวัฒนาการและพฤติกรรมของภาษาโปรแกรมจากมุมมองของนักภาษาศาสตร์  หรือไม่?


6
Perl ถูกสร้างขึ้นโดยนักภาษาศาสตร์และมันก็เลอะกว่าภาษาอังกฤษนั้นเอง
งาน

1
@ งาน: และมันมีมานานกว่า 23 ปีติดตั้งโดยค่าเริ่มต้นบนแพลตฟอร์ม Unix ที่มีลักษณะคล้าย Unix และยังคงใช้เป็นประจำสำหรับทุกสิ่งตั้งแต่ระบบอัตโนมัติ (ซึ่งเป็นวิธีที่สะอาดกว่าเชลล์สคริปต์) ไปจนถึงการพัฒนาเว็บ สะอาดกว่า PHP) ไปยังจุดประสงค์ดั้งเดิมของการประมวลผลข้อความด้วยนิพจน์ทั่วไป (ซึ่งได้สร้างมาตรฐานอุตสาหกรรมโดยพฤตินัย) แน่นอนว่ามันยุ่ง แต่ในวิธีที่ใช้งานได้ดีสำหรับผู้คนและนั่นคือสิ่งที่อยู่ในพื้นหลังของภาษาศาสตร์การพัฒนาของ Perl Larry เป็นประโยชน์
Jon Purdy

@Job ผลที่เรียกว่า "เลวดี" en.wikipedia.org/wiki/Worse_is_better
Apalala

@Aplala: นั่นไม่เกี่ยวข้อง หากมีสิ่งใด Perl เป็นตัวอย่างที่ดีเพราะมันมีคุณสมบัติที่หลากหลายและซับซ้อนและเป็นที่นิยม
Jon Purdy

คำตอบ:


6

โปรดจำไว้ว่าไวยากรณ์อย่างเป็นทางการซึ่งหากไม่มีโปรแกรมสมัยใหม่ไม่สามารถเป็นผลงานวิจัยของนักภาษาศาสตร์นอมชอมสกีได้

อุบัติเหตุทางรถยนต์ทำให้ฉันไม่สามารถทำวิทยานิพนธ์ที่สำเร็จการศึกษาในเรื่องที่คุณถามดังนั้นจึงไม่มีการอ้างอิงที่ฉันสามารถให้คุณได้มีเพียงความเห็น

ภาษาที่พูดนั้นมีวิวัฒนาการอย่างรวดเร็วไม่ว่าจะขึ้นอยู่กับบริบทใดก็ตามและพวกเขาก็ทำเช่นนั้นในลักษณะที่ไม่อาจคาดเดาได้ว่าเป็นบริบทของมนุษย์ที่ไม่สามารถคาดเดาได้ ผลลัพธ์ของ WW2 มีผลอย่างมากต่อภาษาญี่ปุ่น อังกฤษออสเตรเลียแอฟริกาใต้และอเมริกาเหนือไม่พูดภาษาเดียวกัน การใช้คำกริยาในหมู่สิ่งที่เคยเป็นอาณานิคมสเปน declinations กลายเป็นค่อนข้างแตกต่างหลังจากสองร้อยปีแห่งอิสรภาพ (อดีตอาณานิคมคิดว่าสเปน - สเปนโบราณ )

เพียงพลังแห่งประสิทธิภาพเหนือสัทศาสตร์ทำให้คำต่าง ๆ ที่ใช้กับความถี่ที่แตกต่างกันในแต่ละพื้นที่มีความแตกต่างกันอย่างชัดเจน: คำที่เหมือนกันมากคือคำขาดหรือคำที่สะกดผิด

ภาษาธรรมชาติที่มีความแตกต่างความแตกต่างและวิวัฒนาการไม่เหมาะกับระดับที่เราต้องการสำหรับคอมพิวเตอร์ (Gee! ด้วยความธรรมดาสามัญของการตีความที่ผิดและการตีความที่สองดูเหมือนว่าพวกเขาไม่เหมาะสำหรับการปฏิสัมพันธ์ที่ง่ายที่สุดในหมู่มนุษย์ [งดเว้นจากการพูดตลกเกี่ยวกับสิ่งที่ผู้หญิง / เพื่อนชายพูดและสิ่งที่มันหมายถึงจริงๆ])


ในการวิจัยของเรา (ฉันมีติวเตอร์) เรามองกรีกและละตินเพราะพวกเขามีไวยากรณ์ที่กำหนดชัดเจนซึ่งครอบคลุมทุกบทบาททุกคำที่อาจมีในประโยคโดยการปฏิเสธของพวกเขา มันไม่ดีพอและบันทึกว่าผู้คนพูดภาษาเหล่านั้นอย่างไรจริง ๆ แล้วบอกว่ามันแตกต่างจากสิ่งที่ไวยากรณ์ของพวกเขาระบุเมื่อมันเกิดขึ้นกับภาษาสมัยใหม่
Apalala

4
เกี่ยวกับกรีกโบราณและละติน - ส่วนหนึ่งของปัญหาที่นี่คือข้อความที่หลงเหลืออยู่มีแนวโน้มที่จะเป็นทางการในธรรมชาติ - บทความสัญญาสัญญาชี้ขาดทางกฎหมาย ฯลฯ หากคุณคิดเกี่ยวกับข้อความที่เราส่งวันต่อวัน - "สวัสดีที่รักโปรดรับ นมระหว่างทางกลับบ้าน "และ" จิม - จำรายงานเคซี่ย์สำหรับ 9 โมงเช้า "- ข้อความชั่วคราวเหล่านี้ส่วนใหญ่ในกรุงโรมโบราณจะสูญหายไปตลอดกาล
HorusKol

2
นั่นไม่จริงทั้งหมด แม่ของฉันพูดถึงบางครั้งเกี่ยวกับชั้นเรียนภาษาละตินของโรงเรียนมัธยมของเธอและกล่าวถึงชิ้นส่วนที่พวกเขาแปลเป็นบันทึกจากผู้ดีชาวโรมันคนขับรถม้าของเขา ส่วนสำคัญคือ "ได้โปรดในช่วงชั่วโมงเร่งด่วนไม่ได้ถูกจับหลังรถม้าของผู้ให้และอื่น ๆ ฉันไม่รู้ว่าเขาเลี้ยงม้าของเขาอย่างไร แต่กลิ่นเหม็นน่ากลัว"
John R. Strohm

4

ฉันอ่านคำถามอีกครั้งและฉันคิดว่าคำตอบดั้งเดิมของฉันไม่ได้ตอบ ลองอีกครั้ง

ไม่ยังไม่มีการวิจัยอย่างจริงจังเกี่ยวกับภาษาศาสตร์ภาษาโปรแกรมที่ฉันรู้ มีภาษาที่สืบเชื้อสายมาจากสองสาขาหลักและสาขาย่อย:

  • Procedimental von Neuman Dijkstra Fortran, Pascal, C.
    • เชิงวัตถุ Simula หูฟัง.
  • การทำงาน. McArthy LISP

สำหรับพวกเราที่มีหลายสิบปีในฟิลด์เป็นที่ชัดเจนว่าภาษาโปรแกรมมีการผสมและดังนั้นจึงพบส่วนใหญ่ของกระบวนทัศน์บริสุทธิ์ใด ๆในภาษาการเขียนโปรแกรมที่ทันสมัยที่สุดที่เรียกว่าภาษาการเขียนโปรแกรมแบบหลายตอนนี้: C #, Python, Java .. ก่อนหน้านี้แม้แต่ภาษาที่ใช้งานได้อย่างบริสุทธิ์เช่น OCaml และ Haskell ยังมีขั้นตอนที่เพียงพอ (ผ่านmonads ) และคุณสมบัติ OO เพื่อให้คุณทำอะไรได้เลย

ฉันคิดว่าสิ่งที่เกิดขึ้นก็คือมันเห็นได้ชัดว่ามันมีค่าใช้จ่ายสูง (เมื่อไม่ได้โง่) ที่จะต้องเปลี่ยนภาษาการเขียนโปรแกรมเพียงเพื่อให้สามารถใช้กระบวนทัศน์ที่ถูกต้องกับปัญหาย่อยที่กำหนด

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

ส่วนที่ไม่ใช่กระบวนทัศน์ของวิวัฒนาการอยู่บนไวยากรณ์ ภาษาที่สนับสนุนหรืออนุญาตให้ใช้โปรแกรมที่เป็นความลับได้กลายเป็นใช้น้อยลง ( APL , AWK , และแม้แต่ Perl และ LISP) ไวยากรณ์ที่เหนือกว่าในปัจจุบันคือภาษาที่อ่านได้ง่ายกว่าภาษา C (C ++, C #, Java, Objective-C, Scala, Go, IML, CSS, JavaScript และ Python), Pascal (Fortran 90+) x), Smalltalk (Ruby), ML / Miranda (OCaml, Haskell, Erlang) และSGML (HTML, XML)

แผนภาพนี้ไม่ถูกต้องสมบูรณ์และไม่ทันสมัย ​​แต่มันก็ให้ความคิดที่ดีว่าภาษาการเขียนโปรแกรมได้แปรเปลี่ยนไปมากน้อยเพียงใดตั้งแต่ยุคภาษาต่อไซต์ของปี 1970

วิวัฒนาการของภาษาโปรแกรม


1
นี่เป็นสิ่งที่ฉันต้องการมากกว่า ฉันเดาว่าฉันกำลังมองหาความสัมพันธ์โดยตรงกับสัณฐานวิทยาและสัทวิทยาอยู่ด้านบนของความสัมพันธ์ที่ชัดเจนกับไวยากรณ์ที่มาจากการทำงานกับไวยากรณ์ที่เป็นทางการ
Jon Purdy

@ จอนอีกแนวโน้มที่ชัดเจนคือภาษาอังกฤษเป็นและเป็นภาษาธรรมชาติที่มีอำนาจเหนือทุกภาษาการเขียนโปรแกรมทั้งไวยากรณ์และไวยากรณ์ ภาษาการเขียนโปรแกรมเป็นซ้ายไปขวากริยาก่อน ยกตัวอย่างเช่นภาษาญี่ปุ่นแตกต่างกันมาก แต่ฉันไม่รู้ว่าจะพยายามพัฒนาภาษาการเขียนโปรแกรมสไตล์ญี่ปุ่น en.wikipedia.org/wiki/Japanese_language#Sentence_structure
Apalala

@Aplala: การสั่งซื้อ SOV เป็นเรื่องปกติในภาษาที่เน้นกองซ้อนตัวดำเนินการมัดนับเป็น SVO และฟังก์ชั่น (เสียงกระเพื่อมเป็นตัวอย่างทางพยาธิวิทยา) เป็น VSO ภาษาอังกฤษมีอิทธิพลอย่างมาก แต่ฉันคิดว่ามีปัจจัยอื่น ๆ ในการทำงาน ... ฉันอาจต้องทำวิจัยด้วยตัวเอง : P
Jon Purdy

@ จอนใช่ฉันลืมเกี่ยวกับ Forth และ Postcript ซึ่งเป็นทั้ง stack-based และ SOV โปรดแจ้งให้เราทราบหากคุณเริ่มการวิจัย ฉันเชี่ยวชาญด้านทฤษฎีภาษาที่มหาวิทยาลัยและภาษาการเขียนโปรแกรมยังคงเป็นงานอดิเรกของฉัน ฉันมีความทรงจำครั้งแรกของหลายคน (Simula, Prolog, LISP)
Apalala

@ จอนคุณอาจพบว่ามันน่าสนใจที่โปรแกรมเมอร์ที่พูดภาษาสเปนหลายคนชอบที่จะใช้ตัวระบุในภาษาสเปนแม้ว่าพวกเขาจะตรงกับภาษาโปรแกรมไลบรารีกรอบมาตรฐานและเครื่องมือที่พวกเขาใช้ โปรแกรมของพวกเขาจบลงที่ "ฟังออก" ฉันเคยเห็นไลค์กับโปรแกรมเมอร์ที่มีภาษาพื้นเมืองในภาษาอื่นที่มีมรดกโรมัน / ละตินเช่นยุโรปตะวันออก ฉันไม่มีความคิดเกี่ยวกับสิ่งที่นักเขียนโปรแกรมตะวันออกไกล (จีนญี่ปุ่นเกาหลี) รัสเซียหรืออาหรับต้องการทำ
Apalala

1

ฉันชอบคำตอบของ @ Apalala ซึ่งดูเหมือนจะแสดงการบรรจบกันของภาษาที่ใช้งานทั่วไปที่สำคัญบางอย่าง นั่นเป็นเพียงเหตุผลเพราะความคิดที่ดีในข้อใดข้อหนึ่งสามารถหยิบขึ้นมาได้ไม่ช้าก็เร็ว

สิ่งที่ฉันจะเพิ่มก็คือเมื่อใดก็ตามที่มีการใช้ภาษาพวกเขาจำเป็นต้องขยายมันโดยการเพิ่มคำศัพท์เปลี่ยนเป็นภาษาที่มุ่งเน้นไปยังโดเมนที่อยู่ในมือ บางครั้งสิ่งนี้ค่อนข้างตรงไปตรงมาบางครั้งก็ไม่ นี่คือตัวอย่างที่ไม่ตรงไปตรงมา

คุณสมบัติที่ฉันชื่นชมในภาษาที่ใช้งานทั่วไปคือขอบเขตที่ให้ความช่วยเหลือในการกำหนดภาษาเฉพาะโดเมนใหม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.