คำถามติดแท็ก programming-languages

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

8
อะไรเป็นตัวกำหนด“ ความเร็ว” ของภาษาการเขียนโปรแกรม
สมมติว่าโปรแกรมเขียนในสองภาษาที่แตกต่างกันปล่อยให้พวกเขาเป็นภาษา X และภาษา Y หากคอมไพเลอร์ของพวกเขาสร้างรหัสไบต์เดียวกันทำไมฉันควรใช้ภาษา X แทนภาษา Y? อะไรคือสิ่งที่กำหนดว่าภาษาใดภาษาหนึ่งเร็วกว่าภาษาอื่น? ฉันถามสิ่งนี้เพราะบ่อยครั้งที่คุณเห็นผู้คนพูดว่า: "C เป็นภาษาที่เร็วที่สุด ATS เป็นภาษาที่รวดเร็วเหมือน C" ฉันพยายามเข้าใจความหมายของคำว่า "เร็ว" สำหรับการเขียนโปรแกรมภาษา

2
ไอดริสไม่สามารถทำอะไรได้โดยยอมแพ้ทัวริงครบถ้วน
ฉันรู้ว่าไอดริสมีประเภทตาม แต่ไม่สมบูรณ์ สิ่งใดที่ไม่สามารถทำได้โดยการยกเลิกความสมบูรณ์ของทัวริงและสิ่งนี้เกี่ยวข้องกับการมีประเภทตาม ฉันเดาว่านี่เป็นคำถามที่เฉพาะเจาะจง แต่ฉันไม่ทราบจำนวนมากเกี่ยวกับประเภทพึ่งพาและระบบประเภทที่เกี่ยวข้อง

13
เกณฑ์การเลือกภาษาสำหรับหลักสูตรการเขียนโปรแกรมครั้งแรก
ในฐานะที่เป็นผู้สอน CS ในระดับมหาวิทยาลัยปัญหาของการเขียนโปรแกรมภาษาที่จะสอนในหลักสูตรการเขียนโปรแกรมแรกมักจะเกิดขึ้นสำหรับการอภิปราย มีหลายพันภาษาให้เลือกและมีไข้ทางศาสนามากมาย (หรือไข้) สนับสนุนค่ายภาษาหนึ่งมากกว่าอีกภาษาหนึ่ง ความลำเอียงแบบอัตนัยทั้งหมดนี้ล้อมรอบแต่ละภาษาการเขียนโปรแกรมทำให้ผู้สอนเลือกได้ยาก คำถามของฉันคือ: ผู้สอนสามารถใช้เกณฑ์วัตถุประสงค์อะไรในการเลือกภาษาการเขียนโปรแกรมเพื่อใช้เป็นพื้นฐานสำหรับหลักสูตรการเขียนโปรแกรมมหาวิทยาลัยปีแรก เกณฑ์สำหรับเกณฑ์เหล่านี้คืออะไร หมายเหตุ : ฉันไม่ต้องการเห็นรายการภาษาการเขียนโปรแกรมและทำไมจึงเป็นภาษาที่ดีที่สุดที่จะใช้ คำถามคือไม่ได้เกี่ยวกับภาษาที่ดีที่สุดก็เป็นเรื่องเกี่ยวกับเกณฑ์สำหรับการเลือกภาษา คำตอบอาจใช้ภาษาการเขียนโปรแกรมเพื่อแสดงจุดเฉพาะ คำถามนี้ได้รับแรงบันดาลใจจากคำถามอื่นซึ่งถือว่านอกหัวข้อ: https://cs.stackexchange.com/questions/1946/criteria-for-choosing-a-first-programming-language

10
ภาษาการเขียนโปรแกรมด้วยภาพ
พวกเราส่วนใหญ่เรียนรู้การเขียนโปรแกรมโดยใช้ภาษาการเขียนโปรแกรม "ใจความ" เช่น Basic, C / C ++ และ Java ฉันเชื่อว่ามันเป็นธรรมชาติและมีประสิทธิภาพมากขึ้นสำหรับมนุษย์ที่จะคิดด้วยสายตา การเขียนโปรแกรมภาพช่วยให้นักพัฒนาสามารถเขียนโปรแกรมโดยจัดการองค์ประกอบกราฟิก ฉันเดาว่าการใช้การเขียนโปรแกรมด้วยภาพควรปรับปรุงคุณภาพของรหัสและลดข้อบกพร่องในการเขียนโปรแกรม ฉันรู้ภาษาภาพไม่กี่เช่นApp Inventor , รอยขีดข่วนและLabView เหตุใดจึงไม่มีภาษาภาพทั่วไปที่ใช้งานทั่วไปสำหรับนักพัฒนาซอฟต์แวร์ อะไรคือข้อดีและข้อเสียของการเขียนโปรแกรมด้วยภาพ?

2
ใน“ ความโหดร้ายของการสอนวิทยาศาสตร์คอมพิวเตอร์จริงๆ”
Dijkstra ในเรียงความของเขาในความโหดร้ายของการสอนวิทยาศาสตร์คอมพิวเตอร์จริงทำให้ข้อเสนอต่อไปนี้สำหรับหลักสูตรการเขียนโปรแกรมเบื้องต้น: ในอีกด้านหนึ่งเราสอนสิ่งที่ดูเหมือนว่าแคลคูลัสเพรดิเคต แต่เราทำแตกต่างจากนักปรัชญามาก ในการฝึกอบรมโปรแกรมเมอร์มือใหม่ในการจัดการสูตรที่ไม่ถูกตีความเราสอนมันมากขึ้นในฐานะพีชคณิตแบบบูลทำความคุ้นเคยกับนักเรียนเกี่ยวกับคุณสมบัติเชิงพีชคณิตของตรรกะเชิงเชื่อม เพื่อตัดการเชื่อมโยงไปยังปรีชาเพิ่มเติมเราเปลี่ยนชื่อค่า {true, false} ของโดเมนบูลีนเป็น {black, white} ในทางกลับกันเราสอนภาษาการเขียนโปรแกรมที่ง่ายสะอาดและมีความจำเป็นโดยมีการข้ามและการมอบหมายหลายอย่างเป็นข้อความพื้นฐานพร้อมโครงสร้างบล็อกสำหรับตัวแปรท้องถิ่นเซมิโคลอนเป็นโอเปอเรเตอร์สำหรับองค์ประกอบคำสั่งโครงสร้างทางเลือกที่ดี การทำซ้ำและหากต้องการให้เรียกขั้นตอน ในส่วนนี้เราเพิ่มประเภทข้อมูลขั้นต่ำเช่น booleans, จำนวนเต็ม, อักขระและสตริง สิ่งสำคัญคือสำหรับสิ่งที่เราแนะนำความหมายที่สอดคล้องกันจะถูกกำหนดโดยกฎการพิสูจน์ที่ไปกับมัน ตั้งแต่เริ่มต้นและตลอดหลักสูตรเราเน้นว่างานของโปรแกรมเมอร์ไม่เพียง แต่เขียนโปรแกรม แต่งานหลักของเขาคือให้การพิสูจน์อย่างเป็นทางการว่าโปรแกรมที่เขาเสนอนั้นตรงตามข้อกำหนดการทำงานที่เป็นทางการเท่ากัน ในขณะที่การออกแบบการพิสูจน์และโปรแกรมจับมือนักเรียนได้รับโอกาสที่เพียงพอที่จะสมบูรณ์แบบความคล่องแคล่วว่องไวกับแคลคูลัสภาค สุดท้ายเพื่อขับรถกลับบ้านข้อความที่หลักสูตรการเขียนโปรแกรมเบื้องต้นนี้เป็นหลักสูตรหลักในวิชาคณิตศาสตร์อย่างเป็นทางการเราจะเห็นว่าภาษาการเขียนโปรแกรมที่เป็นปัญหาไม่ได้ดำเนินการในมหาวิทยาลัยเพื่อให้นักเรียนได้รับการปกป้องจากสิ่งล่อใจเพื่อทดสอบโปรแกรมของพวกเขา . เขาเน้นว่านี่เป็นข้อเสนอที่ร้ายแรงและสรุปการคัดค้านที่เป็นไปได้ต่างๆรวมถึงความคิดของเขาที่ว่า "ไม่สมจริงอย่างเต็มที่" และ "ยากเกินไป" แต่ว่าวจะไม่บินทั้งสำหรับสมมุติฐานได้รับการพิสูจน์ผิด: ตั้งแต่ต้นปี 80 หลักสูตรการเขียนโปรแกรมเบื้องต้นดังกล่าวได้รับการประสบความสำเร็จให้กับนักศึกษาหลายร้อยคนในแต่ละปี [เพราะจากประสบการณ์ของฉันการพูดครั้งนี้ไม่พอประโยคก่อนหน้าควรทำซ้ำอย่างน้อยอีกสองครั้ง] หลักสูตรใดที่ Dijkstra อ้างถึงและมีวรรณกรรมอื่นอีกบ้างที่กล่าวถึงเรื่องนี้ เรียงความที่ปรากฏในปี 1988 เมื่อ Dijkstra อยู่ที่มหาวิทยาลัยเท็กซัสที่ออสตินซึ่งอาจเป็นเบาะแส - พวกเขาเป็นเจ้าภาพเก็บถาวร Dijkstra แต่มันมีขนาดใหญ่และฉันสนใจที่จะได้ยินจากคนอื่นเกี่ยวกับหลักสูตรนี้ ฉันไม่ต้องการที่จะพูดคุยว่าความคิดของ Dijkstra ดีหรือเหมือนจริงที่นี่ ฉันพิจารณาการโพสต์สิ่งนี้ใน cstheory.se …

5
ภาษาปกติสามารถทัวริงได้หรือไม่
ฉันกำลังอ่านเกี่ยวกับIota และ Jotและพบว่าส่วนนี้ทำให้เกิดความสับสน: ซึ่งแตกต่างจาก Iota ที่ต้นไม้ syntactic สำหรับสตริงสามารถแยกทั้งทางด้านซ้ายหรือด้านขวาไวยากรณ์ Jot เป็นซ้าย - กิ่งเหมือนกัน เป็นผลให้ Iota ไม่มีบริบทอย่างเคร่งครัด แต่ Jot เป็นภาษาปกติ ความเข้าใจของฉันคือทั้ง Iota และ Jot เป็นทัวริงที่สมบูรณ์ แต่เห็นได้ชัดว่าอย่างใดอย่างหนึ่งไม่มีบริบทและอื่น ๆ เป็นปกติ! แน่นอนว่าภาษาปกติไม่สามารถทำให้ทัวริงสมบูรณ์

2
ภาษาการเขียนโปรแกรมและรากฐานของคณิตศาสตร์มีความสัมพันธ์กันอย่างไร
โดยพื้นฐานฉันรู้พื้นฐานสามประการเกี่ยวกับคณิตศาสตร์ ทฤษฎีเซต ทฤษฎีประเภท ทฤษฎีหมวดหมู่ ดังนั้นการเขียนโปรแกรมภาษาและรากฐานของคณิตศาสตร์ในทางใดบ้าง? แก้ไข คำถามเดิมคือ "ภาษาการเขียนโปรแกรมตามรากฐานของคณิตศาสตร์" กับ paragarph เพิ่มของ และการประยุกต์ใช้ทฤษฎี 1. ทฤษฎีประเภทในCoq 2. ตั้งทฤษฎีในSETL 3. ทฤษฎีหมวดหมู่ในHaskell ตามคำแนะนำนี้ถูกเปลี่ยนเป็น "ภาษาการเขียนโปรแกรมและพื้นฐานทางคณิตศาสตร์เกี่ยวข้องอย่างไร" เนื่องจากนี่เป็นหนึ่งในคำถามเหล่านั้นที่ฉันไม่รู้เกี่ยวกับสิ่งที่ฉันถาม แต่ต้องการเรียนรู้บางอย่างฉันจึงแก้ไขคำถามเพื่อให้มีค่ามากขึ้นสำหรับการเรียนรู้และอื่น ๆ แต่ยังทิ้งรายละเอียดไว้เพื่อไม่ให้คำตอบปัจจุบันโดย Andrej Bauer ดูเหมือนปิดหัวข้อ ขอบคุณสำหรับความคิดเห็นทั้งหมดและคำตอบจนถึงตอนนี้ฉันกำลังเรียนรู้จากพวกเขา

6
มีโปรแกรมที่สามารถ 'แปล' ซอร์สโค้ดระหว่างสองภาษาหรือไม่?
มีโปรแกรมที่สามารถ 'แปล' ซอร์สโค้ดระหว่างสองภาษาใด ๆ (สมมติว่าผู้แปลมีสิทธิ์เข้าถึงไลบรารี่ที่จำเป็น) หรือไม่? ถ้ามีพวกเขาทำงานอย่างไร (เทคนิคที่ใช้ความรู้ที่จำเป็น ฯลฯ )? พวกเขาจะสร้างได้อย่างไร? หากไม่เป็นเช่นนั้นข้อ จำกัด อะไรที่ขัดขวางการพัฒนาของพวกเขา นี่เป็นปัญหาที่สมบูรณ์แบบของ AI หรือไม่ (การแปลภาษาธรรมชาติแสดงเป็นรายการเดียว) หรือไม่ คาดว่าการแปลง EDITจะเกิดขึ้นก็ต่อเมื่อภาษานั้นมีความสามารถในการแสดงออกเท่ากันสามารถแก้ไขปัญหาประเภทเดียวกันได้และรหัสที่จะทำการแปลงสามารถแสดงเป็นภาษาปลายทางได้ (เช่นการแปลงจากเชลล์สคริปต์เป็น MATLAB ไม่เป็นที่คาดหมาย)

4
ชัดเจนและเป็นธรรมชาติของ combinator จุดคงที่ (Y combinator)
แก้ไข combinator จุดคงที่ (aka combinator Y) ในแคลคูลัสแลมบ์ดา (untyped) ( ) ถูกกำหนดเป็น:λλ\lambda FIX≜λf.(λx.f (λy.x x y)) (λx.f (λy.x x y))≜λf.(λx.f (λy.x x y)) (λx.f (λy.x x y))\triangleq \lambda f.(\lambda x. f~(\lambda y. x~x~y))~(\lambda x. f~(\lambda y. x~x~y)) ฉันเข้าใจวัตถุประสงค์และสามารถติดตามการใช้งานแอปพลิเคชันได้อย่างสมบูรณ์แบบ ฉันต้องการที่จะเข้าใจวิธีการแก้ไขเป็นผลมาจากหลักการแรก นี่คือเท่าที่ฉันได้รับเมื่อฉันพยายามที่จะได้รับมันด้วยตนเอง: FIX เป็นฟังก์ชั่น: FIX ≜λ…≜λ…\triangleq \lambda_\ldots การแก้ไขใช้ฟังก์ชันอื่นfffเพื่อทำให้เกิดการเรียกซ้ำ: FIX ≜λf.…≜λf.…\triangleq \lambda f._\ldots อาร์กิวเมนต์แรกของฟังก์ชั่นfffคือ …

9
ภาษาการเขียนโปรแกรมกลายเป็นภาษาธรรมชาติมากกว่าหรือเปล่า?
คำถามนี้ถูกย้ายจากการแลกเปลี่ยนกองวิศวกรรมซอฟต์แวร์เพราะสามารถตอบได้ใน Computer Science Stack Exchange อพยพ 6 ปีที่แล้ว เราสามารถศึกษาภาษาการเขียนโปรแกรมในบริบทของภาษาศาสตร์ได้หรือไม่? ภาษาการเขียนโปรแกรมมีวิวัฒนาการตามธรรมชาติในรูปแบบที่คล้ายคลึงกับภาษาธรรมชาติ แม้ว่าความเป็นเหตุเป็นผลเต็มรูปแบบและความสอดคล้องทางคณิตศาสตร์เป็นสิ่งจำเป็นสำหรับภาษาโปรแกรม แต่ก็ยังมีความต้องการ (โดยเฉพาะภาษาสมัยใหม่) เพื่อให้สามารถอ่านได้และสะดวกสบายสำหรับมนุษย์ ภาษาการเขียนโปรแกรมพัฒนาขึ้นเพื่อให้เป็นภาษาศาสตร์มากขึ้นและเป็นธรรมชาติยิ่งขึ้นหรือไม่? ตัวอย่างเช่นรหัสเครื่อง, การ์ดเจาะรูและภาษาแอสเซมบลีได้ให้วิธีการในภาษาที่อ่านได้มากขึ้นเช่น Ruby และ Python เป็นต้น เมื่อฉันพูดภาษาคอมพิวเตอร์กลายเป็นธรรมชาติมากขึ้นฉันไม่ได้หมายความว่าพวกเขามี 'คำที่เรามีในภาษาอังกฤษ' ฉันหมายถึงพวกเขาดูเหมือนจะเป็นภาษาธรรมชาติมากกว่าในแง่ของความซับซ้อนของไวยากรณ์และความสามารถในการแสดงความหมาย (ตัวอย่างเช่นความสามารถในการอธิบายการสอบถามจากฐานข้อมูลอย่างละเอียดทั้งในเชิงเหตุผลและที่มนุษย์เข้าใจได้) คุณคิดอย่างไร? ภาษาการเขียนโปรแกรมมีลักษณะคล้ายกับภาษาธรรมชาติมากขึ้นและสามารถนำไปใช้กับกฎหมายภาษาศาสตร์ได้หรือไม่? หรือบางทีภาษาก็อาศัยอยู่ในสเปกตรัมซึ่งในอีกด้านหนึ่งคุณมีภาษาที่มีเหตุผลสูงมากและอีกด้านหนึ่งก็สร้างสรรค์มากขึ้น บางทีการเขียนโปรแกรมและภาษาธรรมชาตินั้นเหมือนกันและทั้งคู่ก็อยู่บนสเปกตรัมภาษานี้ (ความแตกต่างเพียงอย่างเดียวอาจเป็น 'สิ่ง' ที่พวกเขาพยายามให้ความหมายของมัน) มีการเชื่อมต่อระหว่างการแยก (Babel Tower effect) ของภาษามนุษย์และภาษาคอมพิวเตอร์หรือไม่? พวกเขามีความหลากหลายมากขึ้นด้วยเหตุผลเดียวกัน (เช่นการแก้ปัญหาที่แตกต่างกันภายในระบบคอมพิวเตอร์ / วัฒนธรรม - ระบบ ฯลฯ )?

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

7
เหตุใดกระบวนทัศน์ของผู้ทำลายล้างวัตถุในภาษาที่รวบรวมขยะจึงหายไปอย่างแพร่หลาย?
กำลังมองหาข้อมูลเชิงลึกเกี่ยวกับการตัดสินใจเกี่ยวกับการออกแบบภาษาที่รวบรวมขยะ บางทีผู้เชี่ยวชาญด้านภาษาสามารถสอนฉัน ฉันมาจากพื้นหลัง C ++ ดังนั้นพื้นที่นี้ทำให้ฉันงุนงง ดูเหมือนว่าภาษาที่รวบรวมขยะสมัยใหม่เกือบทั้งหมดที่มีการสนับสนุนวัตถุ OOPy เช่น Ruby, Javascript / ES6 / ES7, Actionscript, Lua และอื่น ๆ จะไม่ใช้ destructor / finalize paradigm Python ดูเหมือนจะเป็นคนเดียวที่มีclass __del__()วิธีการ ทำไมนี้ มีข้อ จำกัด ด้านการทำงาน / ทางทฤษฎีในภาษาที่มีการรวบรวมขยะอัตโนมัติซึ่งป้องกันการใช้งานที่มีประสิทธิภาพของวิธีการ destructor / จบบนวัตถุ? ฉันพบว่าภาษาเหล่านี้ไม่ได้พิจารณาถึงความทรงจำเป็นอย่างยิ่งเพราะเป็นเพียงการจัดการทรัพยากร เกี่ยวกับซ็อกเก็ตตัวจัดการไฟล์สถานะแอปพลิเคชัน หากปราศจากความสามารถในการใช้ตรรกะที่กำหนดเองเพื่อล้างทรัพยากรที่ไม่ใช่หน่วยความจำและสถานะในการสรุปวัตถุฉันต้องทำให้แอปพลิเคชั่นของฉันมีmyObject.destroy()สไตล์การโทรที่กำหนดเองวางตรรกะการล้างข้อมูลนอก "คลาส" ของฉัน การประยุกต์ใช้กับการรั่วไหลของทรัพยากรเนื่องจากข้อผิดพลาดของมนุษย์มากกว่าจะถูกจัดการโดย gc โดยอัตโนมัติ การตัดสินใจออกแบบภาษาที่นำไปสู่ภาษาเหล่านี้ไม่มีวิธีใดในการดำเนินการตรรกะที่กำหนดเองในการกำจัดวัตถุคืออะไร? ฉันต้องจินตนาการว่ามีเหตุผลที่ดี ฉันต้องการเข้าใจการตัดสินใจทางเทคนิคและทางทฤษฎีที่ทำให้ภาษาเหล่านี้ไม่สนับสนุนการทำลายวัตถุ / การสรุป ปรับปรุง: …

7
ภาษาทัวริงทั้งหมดล้วนใช้แทนกันได้
หมายเหตุในขณะที่ฉันรู้วิธีการเขียนโปรแกรมฉันค่อนข้างเป็นผู้เริ่มต้นในทฤษฎี CS ตามคำตอบนี้ ทัวริงสมบูรณ์เป็นแนวคิดนามธรรมของการคำนวณ หากภาษาทัวริงสมบูรณ์แล้วก็สามารถทำการคำนวณใด ๆ ที่ภาษาทัวริงอื่น ๆ สามารถทำได้ และโปรแกรมที่เขียนด้วยภาษาทัวริงที่สมบูรณ์สามารถเขียนใหม่ในภาษาอื่นได้ ตกลง. มันสมเหตุสมผลแล้ว ฉันสามารถแปล (คอมไพล์) C เป็นแอสเซมบลี (และฉันทำมันทุกวัน!) และสามารถแปลแอสเซมบลีเป็น C (คุณสามารถเขียนเครื่องเสมือนใน C) และเช่นเดียวกันกับภาษาอื่น ๆ - คุณสามารถรวบรวมภาษาใด ๆ ในแอสเซมบลีแล้วเรียกใช้ใน VM ที่เขียนในภาษาอื่น แต่สามารถใด ๆโปรแกรมที่เขียนในภาษาทัวริงสมบูรณ์นำมาเขียนใหม่อีก? เกิดอะไรขึ้นถ้าสมัชชาของฉันมี opcode LIGHTBUTTON? ฉันไม่สามารถเลียนแบบภาษานั้นในระบบ (ภาษา) โดยไม่ใช้หลอดไฟ ตกลง. คุณจะบอกว่าเนื่องจากเรากำลังเผชิญกับทฤษฎีคอมพิวเตอร์เราไม่ได้พูดถึงข้อ จำกัด ของอุปกรณ์ทางกายภาพ แต่ถ้าเป็นอุปกรณ์ที่ไม่มีการคูณล่ะ แผนก? เพื่อความรู้ที่ดีที่สุดของฉัน (แม้ว่านี่จะเป็นคำถามสำหรับคณิตศาสตร์.) เราไม่สามารถเลียนแบบการคูณ (และไม่หารแน่นอน) ด้วยการบวกและการลบ [1] ดังนั้น …

3
เครื่องมือการเขียนโปรแกรมภาพทำไมพวกเขาไม่ทำงานกับ AST โดยตรง
ฉันพบเครื่องมือการเขียนโปรแกรมแบบโอเพ่นซอร์สหลายรายการเช่น Blockly และเพื่อน ๆ และโครงการอื่น ๆ ที่โฮสต์ที่ Github แต่ไม่พบสิ่งใดที่สามารถใช้งานได้โดยตรงกับแผนผังไวยากรณ์แบบนามธรรม ทำไมถึงเป็นอย่างนั้น? ฉันถามเพราะเมื่อฉันค้นพบว่าคอมไพเลอร์ทุกตัวมีขั้นตอนในกระบวนการรวบรวมซึ่งแยกวิเคราะห์ซอร์สโค้ดกับ AST มันชัดเจนสำหรับฉันว่าเครื่องมือการเขียนโปรแกรมแบบเห็นภาพบางอย่างสามารถใช้ประโยชน์จากสิ่งนี้เพื่อให้วิธีโปรแกรมเมอร์ เพื่อแก้ไข AST โดยตรงในลักษณะที่มองเห็นและเพื่อทำการปัดเศษจากต้นทางไปยังโหนดกราฟแล้วกลับไปยังแหล่งข้อมูลอีกครั้งเมื่อจำเป็น ตัวอย่างหนึ่งอาจคิดว่าจากJavaScript AST Visualizerไปจนถึงเครื่องมือการเขียนโปรแกรม JavaSript เสมือนจริงนั้นมีความแตกต่างไม่มากนัก แล้วฉันจะพลาดอะไร

2
มีหลักฐานที่แสดงว่าการใช้ภาษาแบบไดนามิกมีผลกระทบต่อผลผลิตหรือไม่
ฉันสงสัยว่ามีการทดลองใด ๆ ที่แสดงการมีอยู่หรือไม่มีความสัมพันธ์ระหว่างการใช้ภาษาแบบไดนามิก (เช่น Python, Ruby หรือแม้แต่ภาษาที่ทำงานบนแพลตฟอร์ม Java เช่น Groovy, Clojure) มากกว่า ภาษาแบบคงที่ (เช่น C / C ++) และความแตกต่างในการผลิต

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