คำถามติดแท็ก syntax

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

2
ธรรมเนียมในการใช้วงเล็บเหลี่ยมสำหรับองค์ประกอบอาร์เรย์พัฒนาอย่างไร
ภาษาการเขียนโปรแกรมจำนวนมากใช้ไวยากรณ์a[i]เพื่ออ้างถึงiองค์ประกอบ 'ของอาร์เรย์ลำดับหรือเวกเตอร์a- โดยเฉพาะ C และ Pascal (จากช่วงปลายทศวรรษ 1960 และต้น 1970) ทำสิ่งนี้ ในทางตรงกันข้ามภาษาก่อนหน้านี้บางอย่างเช่น Fortran (จากปี 1950) ไม่ใช้การประชุมนี้ นอกจากนี้ฉันศึกษาวิชาคณิตศาสตร์นิดหน่อยและนักคณิตศาสตร์ใช้วงเล็บเหลี่ยมสำหรับช่วงเวลาและตัวห้อยสำหรับการดีอาเรย์และเมทริกซ์การห้อย (หรือวงเล็บปกติถ้าอาร์เรย์คิดว่าเป็นฟังก์ชั่นจากจำนวนเต็มไม่เป็นลบ) ดังนั้นคำถามของฉันคือ: สี่เหลี่ยมจัตุรัสในบริบทนี้พัฒนาขึ้นมาจากไหน / อย่างไร / ในบริบทใดและใครเป็นใคร? หมายเหตุ: ไม่ใช่คำถามที่เกี่ยวกับการใช้วงเล็บปีกกาในซี
11 history  array  syntax 

2
เหตุใดความยืดหยุ่นของ Forth จึงทำให้ไวยากรณ์ไม่เหมาะสม
ฉันเพิ่งทำภารกิจการเขียนภาษาโปรแกรมสแต็ก ก่อนที่ฉันจะเริ่มออกแบบภาษาของฉัน แต่ฉันคิดว่ามันเป็นความคิดที่ดีที่จะอ่านและทดลองใช้ภาษาที่มีอยู่เดิม นี่นำฉันมาที่หัวข้อของโพสต์นี้ ฉันอ่านบทความวิกิพีเดียใน Forthซึ่งเป็นภาษาที่ใช้สแต็กซึ่งใช้การแสดงออกสไตล์ postfix ในบทความฉันเห็นข้อความต่อไปนี้: ความยืดหยุ่นของ Forth ทำให้ไวยากรณ์ BNF คงที่ไม่เหมาะสมและไม่มีคอมไพเลอร์เสาหิน การขยายคอมไพเลอร์เพียงต้องการเขียนคำใหม่แทนที่จะแก้ไขไวยากรณ์และเปลี่ยนการใช้งานพื้นฐาน จากความเข้าใจของฉันในศัพท์แสง Forth คำว่า "คำว่า" ดูเหมือนจะตรงกันกับ "subroutine" ด้วยสิ่งนี้ข้อความข้างต้นดูเหมือนแปลก ทำไมความสามารถในการสร้างฟังก์ชั่นใหม่ใน Forth จึงทำให้ไวยากรณ์เป็นทางการสำหรับ Forth ไม่เหมาะสม? ทำไมคุณต้องเขียนไวยากรณ์ใหม่สำหรับแต่ละรูทีนย่อยใหม่ที่คุณกำหนด การเขียนคำศัพท์ใหม่ในสภาพแวดล้อมประกอบด้วยการขยายคอมไพเลอร์อย่างไร ข้อความข้างต้นดูเหมือนจะคล้ายกับว่าไวยากรณ์อย่างเป็นทางการไม่เหมาะสมสำหรับ Python เพราะคุณสามารถกำหนดฟังก์ชั่นใหม่ได้ ในความเป็นจริงฉันตัดสินใจที่จะพยายามเขียนไวยากรณ์สไตล์ BNF สำหรับชุดย่อยง่ายๆของ Forth ด้านล่าง: program ::= stmt+ stmt ::= func | expr func ::= ':' expr+ ';' expr …

6
อัฒภาคที่เป็นตัวเลือก
ส่วนใหญ่มักจะใช้ภาษาที่มีจุดประสงค์ทั่วไป - อัฒภาคเมื่อต้องมีตัวคั่นคำสั่งหรือไม่ได้รับอนุญาตอย่างสมบูรณ์ (เช่น C และ Python) อย่างไรก็ตามบางภาษาเช่น JavaScript อนุญาตให้คุณเลือกที่จะไม่ลบงบของคุณด้วยเครื่องหมายอัฒภาคเพื่อสนับสนุนตัวคั่นอื่น ๆ (เช่นขึ้นบรรทัดใหม่) การตัดสินใจด้านการออกแบบคืออะไร ฉันเข้าใจว่าเครื่องหมายอัฒภาคมีความสำคัญเมื่อเขียนหลาย ๆ ข้อความในบรรทัดเดียวกัน แต่มีเหตุผลอื่นที่ทำให้จำเป็น (ยกเว้นตาม C) หรือไม่

14
คุณรักษาทุกภาษาเหล่านั้นไว้ในหัวของคุณได้อย่างไร
ฉันรู้ Java, C #, C ++ ฉันใช้ Perl แล้วและกำลังเก็บ Python และ Actionscript 3 นี่เป็นเส้นทางที่คนอื่นเคยเหยียบย่ำดังนั้นฉันจึงถามว่าคุณรักษาภาษาทั้งหมดเหล่านี้ไว้ในหัวของคุณได้อย่างไร

4
เหตุใดภาษาการเขียนโปรแกรมเชิงวิทยาศาสตร์จึงแปลกประหลาด [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา สำหรับฉันแล้วดูเหมือนว่าภาษาการเขียนโปรแกรมสำหรับใช้ในวิทยาศาสตร์และวิศวกรรมนั้นแปลก ๆอย่างสม่ำเสมอเมื่อเทียบกับภาษาทั่วไป ตัวอย่างบางส่วนจากด้านบนของหัวของฉัน: ใน Matlab แต่ละฟังก์ชันจะต้องอยู่ในไฟล์แยกต่างหาก ใน R, <- คือโอเปอเรเตอร์การมอบหมาย, เมื่อเทียบกับ = ในเกือบทุกภาษาอื่น ๆ Matlab, R, Julia และอื่น ๆ ล้วนมีดัชนี 1 รายการ Matlab ใช้% สำหรับความคิดเห็นไม่ใช่มาตรฐาน # หรือ // ของหลักสูตรภาษาเหล่านี้ทุกคนมีคุณสมบัติการออกแบบหลายอย่างที่จริงให้ง่ายต่อการใช้งานสำหรับการใช้งานทางวิทยาศาสตร์เช่นสัญกรณ์เมทริกซ์เป็นธรรมชาติมากขึ้น ถึงกระนั้นพวกเขาต่างก็เลือกสิ่งแปลกประหลาดเหล่านี้อย่างลึกลับซึ่งไม่ได้ทำให้อะไรง่ายขึ้นและสามารถหลีกเลี่ยงได้ง่ายหากนักออกแบบภาษาเลือกที่จะทำในสิ่งที่ 99% ของภาษาอื่นทำ เหตุผลที่ล็อคอินของผู้ขายอยู่หรือไม่ การขาดการติดต่อกับชุมชนพัฒนาซอฟต์แวร์ที่กว้างขึ้น? อื่น ๆ อีก? ฉันอ่านกระทู้นี้และไม่พบคำอธิบายที่น่าพอใจ เพียงเพราะ R ได้รับการออกแบบเป็นภาษาวิทยาศาสตร์ไม่ได้หมายความว่าจะต้องเพิกเฉยต่อการประชุมและใช้ <- แทนที่จะเป็น …

1
ฉันรู้สึกอึดอัดกับไวยากรณ์ของ Haskell
ไวยากรณ์ส่วนใหญ่ของ Haskell มีความบริสุทธิ์ แต่ไวยากรณ์บันทึกดูน่าเกลียด มันอึดอัด มันให้ความรู้สึกบางอย่างผสมกับ C มันต้องใช้เครื่องหมายจุลภาคและวงเล็บ Haskell มีแถบแยกตามบรรทัด ดังนั้นมันดู verbose มากเกินกว่าที่มันต้องการ ทำไมมันถูกออกแบบมาในแบบนั้น?
9 syntax  haskell 

8
คำจำกัดความที่เข้มงวดของน้ำตาลซินแทคติก [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ดูเหมือนว่าในภาษาสงครามศักดิ์สิทธิ์ผู้คนมักจะลบล้างคุณลักษณะใด ๆ ที่พวกเขาไม่พบว่ามีประโยชน์โดยเฉพาะอย่างยิ่งในฐานะที่เป็น "แค่น้ำตาลประโยค" เส้นแบ่งระหว่าง "คุณสมบัติจริง" และ "น้ำตาลเชิงเส้น" มีแนวโน้มที่จะไม่ชัดเจนในการโต้วาทีเหล่านี้ สิ่งใดที่คุณเชื่อว่าเป็นคำจำกัดความที่สมเหตุสมผลและไม่น่าสงสัยของน้ำตาลซินแทคติคที่หลีกเลี่ยงการถูกนิยามว่าเป็นคุณสมบัติใด ๆ ที่ผู้พูด / ผู้เขียนไม่พบว่ามีประโยชน์?

1
อะไรที่ทำให้การแยกวิเคราะห์ง่ายกว่าสิ่งอื่น
ฉันเพิ่งอ่านหน้า Wikipedia สำหรับWebAssemblyและมันบอกว่า: " WebAssembly คือ ... ออกแบบให้แยกได้เร็วกว่า JavaScript " ซึ่งทำให้ฉันคิดว่าอะไรจะทำให้ภาษาหรือรูปแบบข้อมูลเร็วขึ้นในการแยกวิเคราะห์กว่าอื่น ๆ และขั้นตอนวิธีการแยกวิเคราะห์คืออะไร ใช้?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.