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

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


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

3
ทำไมพารามิเตอร์ที่แท้จริงเรียกว่า "การขัดแย้ง"?
คำว่า "อาร์กิวเมนต์" (ในแง่ของการเขียนโปรแกรม) มาจากไหน? เช่นทำไมพารามิเตอร์จริงเรียกว่า "การขัดแย้ง"? ความหมายดูเหมือนจะไม่เกี่ยวข้องกันและฉันไม่พบคำอธิบายใด ๆ เลย หมายเหตุเกี่ยวกับคำศัพท์: พารามิเตอร์ "เป็นทางการ" (เรียกอีกอย่างว่า "พารามิเตอร์") คือชื่อ "ตัวยึดตำแหน่ง" (พูด, x) - พารามิเตอร์ที่ประกาศของฟังก์ชัน พารามิเตอร์ "จริง" (หรือที่เรียกว่า "อาร์กิวเมนต์") เป็นค่าจริงที่ส่งผ่านไปยังฟังก์ชัน (พูด, 5) ดังนั้นฉันใช้คำนี้ข้างบนเพื่อป้องกันความสับสน

22
พื้นที่ว่างในตัวระบุเคยเป็นสำนวนหรือไม่? [ปิด]
สไตล์C #แนะนำให้ใช้CamelCaseในตัวระบุเพื่อคั่นคำ ประเพณีเสียงกระเพื่อมแนะนำให้ใช้ - ขีดกลาง - แทน เคยมีภาษาการเขียนโปรแกรมที่ไม่อนุญาตให้ใช้ช่องว่างในตัวระบุ แต่เป็นสำนวนที่ใช้กันทั่วไปเมื่อใช้ตัวระบุหลายคำ? เป็นไปได้ที่จะมีตัวระบุที่มีช่องว่างในการใช้งานบางอย่างของSchemeแต่ก็ไม่ใช่วิธีปฏิบัติที่แพร่หลาย นี่คือตัวอย่าง: Petite Chez Scheme Version 8.4 Copyright (c) 1985-2011 Cadence Research Systems > (define |hey there| 100) > (define |x y z| 200) > (list |hey there| |x y z|) (100 200)

7
ฟังก์ชั่นการเขียนโปรแกรมที่เพิ่มขึ้น?
ฉันได้สังเกตเห็นเมื่อเร็ว ๆ นี้ว่าภาษาเขียนโปรแกรมการทำงานได้รับความนิยม ฉันเพิ่งเห็นว่าดัชนี Tiobeแสดงให้เห็นถึงความนิยมที่เพิ่มขึ้นเมื่อเทียบกับปีที่แล้วถึงแม้ว่าส่วนใหญ่ของพวกเขาจะไม่ถึง 50 อันดับแรกของภาษายอดนิยมตามดัชนีนี้ และนี่เป็นกรณีที่ค่อนข้างนาน ฟังก์ชั่นการตั้งโปรแกรมไม่ได้กลายเป็นที่นิยมเท่ารุ่นอื่น ๆ (เช่นการเขียนโปรแกรมเชิงวัตถุ) ฉันได้เห็นความสนใจที่เกิดขึ้นใหม่ในพลังของการเขียนโปรแกรมฟังก์ชั่นอย่างไรก็ตามและตอนนี้มัลติคอร์ได้รับความนิยมเพิ่มขึ้นเรื่อย ๆ นักพัฒนาได้เริ่มแสดงความสนใจในรูปแบบอื่น ๆ ที่เกิดขึ้นพร้อมกัน ฉันเห็นด้วยความสนใจอย่างมากความจริงที่ว่าแม้ว่าพวกเขาจะไม่ได้รับการยอมรับจากชุมชนอย่างมีนัยสำคัญ แต่ภาษาประเภทนี้ก็ยังปรากฏขึ้นเรื่อย ๆ Clojure (2007), Scala (2003), F # (2002) เป็นเพียงตัวอย่างของทศวรรษที่ผ่านมา ฉันเคยลงทุนกับการเรียนรู้ Haskell และ Scala บ้างแล้ว และฉันพบศักยภาพที่ยอดเยี่ยมในกระบวนทัศน์ซึ่งสำหรับฉันใหม่แม้จะอยู่ที่นั่นนานมาก และแน่นอนคำถามที่ยิ่งใหญ่ที่สุดของฉันคือถ้าสิ่งเหล่านี้จะได้รับความนิยมมากพอที่จะพิจารณาใช้ความพยายามใด ๆ ในพวกเขา แต่นี่เป็นคำถามที่ไม่แม้แต่แมนเดรคก็สามารถตอบได้ สิ่งที่ฉันต้องการถามคือ: ในสถานการณ์ใดที่ฉันควรพิจารณาภาษาการเขียนโปรแกรมที่ใช้งานได้ดีกว่าที่เหมาะสมในการทำงานที่ได้รับ? นอกเหนือจากปัญหามัลติคอร์ที่ได้รับความนิยมเมื่อเร็ว ๆ นี้ของการเขียนโปรแกรมแบบขนาน หากฉันตัดสินใจเปลี่ยนเป็นภาษาโปรแกรมที่ใช้งานได้ซึ่งคุณจะพิจารณาว่าเป็นข้อผิดพลาดที่ใหญ่ที่สุดที่ฉันจะต้องเผชิญ (นอกจากการเปลี่ยนกระบวนทัศน์และความยากลำบากในการประเมินประสิทธิภาพเนื่องจากการประเมินที่ขี้เกียจ) ด้วยภาษาการเขียนโปรแกรมที่ใช้งานได้มากมายคุณจะเลือกภาษาที่เหมาะสมกับความต้องการของคุณได้อย่างไร คำแนะนำใด ๆ สำหรับการวิจัยเพิ่มเติมจะยินดีมากกว่า ฉันได้ค้นหาความคิดเห็นจากเว็บและดูเหมือนว่าความนิยมที่ได้รับการต่ออายุทั้งหมดนี้มาจากแนวคิดที่ว่าตอนนี้เรากำลังเข้ามาถึงกำแพงของกฎของมัวร์และภาษาการเขียนโปรแกรมที่ใช้งานได้จะมาช่วยเรา แต่ถ้าเป็นกรณีนี้ฉันจะบอกว่ามีความน่าจะเป็นของภาษายอดนิยมที่มีอยู่ในปัจจุบันปรับตัวเข้ากับกระบวนทัศน์ …

13
ทำไมคุณต้องระบุชนิดข้อมูลเมื่อประกาศตัวแปร?
ในภาษาการเข้ารหัสส่วนใหญ่ (ถ้าไม่ใช่ทั้งหมด) คุณต้องประกาศตัวแปร ตัวอย่างเช่นใน C # ถ้ามันเป็นเขตข้อมูลจำนวนแล้ว int PhoneNumber ถ้าฉันใช้ภาษาอังกฤษปกติฉันไม่จำเป็นต้องประกาศPhoneNumberว่าintจะใช้มัน ตัวอย่างเช่นถ้าฉันขอให้แซมเพื่อนของฉันให้ฉันเขาบอกว่า: "แซมให้ฉันด้วยหมายเลขโทรศัพท์" ฉันจะไม่พูด "Char (20) แซมให้ฉันโทรศัพท์เบอร์" ทำไมเราต้องระบุชนิดข้อมูลเลย

18
ไวยากรณ์มีความสำคัญในภาษาโปรแกรมหรือไม่ [ปิด]
อาจารย์คนหนึ่งของฉันบอกว่า "ไวยากรณ์คือ UI ของภาษาการเขียนโปรแกรม", ภาษาอย่าง Ruby มีความสามารถในการอ่านได้ดีและกำลังขยายตัว แต่เราเห็นโปรแกรมเมอร์จำนวนมากทำงานด้วย C \ C ++ ดังนั้นโปรแกรมเมอร์จึงสำคัญสำหรับไวยากรณ์ ควรจะยอมรับได้หรือไม่ ฉันชอบที่จะรู้ความคิดเห็นของคุณเกี่ยวกับเรื่องนี้ คำเตือน: ฉันไม่ได้พยายามที่จะเริ่มต้นการโต้แย้ง ฉันคิดว่านี่เป็นหัวข้อสนทนาที่ดี อัปเดต: สิ่งนี้กลายเป็นหัวข้อที่ดี ฉันดีใจที่คุณทุกคนมีส่วนร่วม


15
คุณจะออกแบบภาษาการเขียนโปรแกรมอย่างไร [ปิด]
หากคุณออกแบบภาษาโปรแกรมคุณจะทำอย่างไร คุณจะใส่ลูกเล่นอะไรลงไป? คุณจะทิ้งอะไรไป พิมพ์แบบคงที่หรือแบบไดนามิก? พิมพ์อย่างรุนแรงหรืออ่อนแอ รวบรวมหรือตีความ? ปรับคำตอบของคุณ

5
แลมบ์ดาแสดงออกถึงสิ่งที่มากกว่าคลาสภายในที่ไม่ระบุชื่อด้วยวิธีการเดียวหรือไม่?
มี hype ใหม่พร้อมกับการแสดงออกแลมบ์ดาที่รอคอยมานานใน Java 8; ทุกๆ 3 วันบทความอื่นจะปรากฏพร้อมกับพวกเขาเกี่ยวกับวิธีเจ๋ง ๆ เท่าที่ฉันเข้าใจแลมบ์ดานิพจน์แล้วมันไม่มีอะไรมากไปกว่าคลาสภายในที่ไม่ระบุชื่อด้วยวิธีการเดียว (อย่างน้อยก็ในระดับรหัสไบต์) นอกจากนี้มันยังมาพร้อมกับฟีเจอร์ที่ดีอีกอย่าง - การอนุมานแบบ แต่ฉันเชื่อว่าสิ่งนี้เทียบเท่าได้กับยาชื่อสามัญในบางระดับ เมื่อรู้อย่างนี้แล้วการแสดงออกของแลมบ์ดาจะนำสิ่งที่มากกว่าแค่การสร้างประโยคในภาษาจาวา ฉันสามารถสร้างคลาสที่ทรงพลังและยืดหยุ่นมากขึ้นหรือโครงสร้างเชิงวัตถุอื่น ๆ ด้วยการแสดงออกแลมบ์ดาที่ไม่สามารถสร้างขึ้นด้วยคุณสมบัติภาษาปัจจุบันได้หรือไม่

16
ภาษาการเขียนโปรแกรมสมัยใหม่พร้อม abstractions การเขียนโปรแกรมพร้อมกันที่ใช้งานง่าย [ปิด]
ฉันสนใจที่จะเรียนรู้การเขียนโปรแกรมพร้อมกันโดยมุ่งเน้นที่ระดับแอปพลิเคชัน / ผู้ใช้ (ไม่ใช่การเขียนโปรแกรมระบบ) ฉันกำลังมองหาภาษาการเขียนโปรแกรมระดับสูงที่ทันสมัยซึ่งมี abstractions ที่ใช้งานง่ายสำหรับการเขียนแอปพลิเคชันพร้อมกัน ฉันต้องการมุ่งเน้นภาษาที่เพิ่มประสิทธิภาพและซ่อนความซับซ้อนของการเขียนโปรแกรมพร้อมกัน เพื่อยกตัวอย่างบางอย่างฉันไม่พิจารณาตัวเลือกที่ดีในการเขียนโค้ดแบบมัลติเธรดใน C, C ++ หรือ Java เพราะ IMHO ลดประสิทธิภาพของฉันลงและรูปแบบการเขียนโปรแกรมของพวกเขาไม่ง่าย ในทางกลับกันภาษาที่เพิ่มประสิทธิภาพและเสนอ abstractions ที่ใช้งานง่ายเช่น Python และโมดูลหลายตัวประมวลผล, Erlang, Clojure, Scala ฯลฯ จะเป็นตัวเลือกที่ดี คุณอยากแนะนำอะไรจากประสบการณ์ของคุณและเพราะอะไร แก้ไข: ขอบคุณทุกคนสำหรับคำตอบที่น่าสนใจของคุณ เป็นการยากที่จะสรุปโดยไม่ต้องพยายามจริง ๆ เนื่องจากมีผู้สมัครที่ดีมากมายเช่น Erlang, Clojure, Scala, Groovy และ Haskell ฉันโหวตคำตอบด้วยข้อโต้แย้งที่น่าเชื่อที่สุด แต่ฉันจะลองผู้สมัครที่ดีทั้งหมดก่อนที่จะตัดสินใจเลือกข้อใดข้อหนึ่ง :)

7
ทุกภาษาเหมือนกันหรือไม่
เมื่อเร็ว ๆ นี้ฉันต้องเข้าใจการออกแบบโปรแกรมเล็ก ๆ ที่เขียนด้วยภาษาที่ฉันไม่มีความคิด ( ABAPถ้าคุณต้องรู้) ฉันสามารถคิดออกโดยไม่ยากเกินไป ฉันรู้ว่าการเรียนรู้ภาษาใหม่เป็นเกมลูกที่แตกต่างอย่างสิ้นเชิง แต่เข้าใจถึงความตั้งใจของรหัส (โดยเฉพาะรหัสมาตรฐานการผลิตซึ่งไม่จำเป็นต้องซับซ้อน) ในภาษาใด ๆ ก็ตามเป็นสิ่งที่ตรงไปตรงมาหากคุณรู้จักภาษาสองภาษา หนึ่งขั้นตอน / OO และหนึ่งการทำงาน) นี่เป็นเรื่องจริงหรือไม่ ภาษาการเขียนโปรแกรมทั้งหมดประกอบด้วยโครงสร้างที่คล้ายกันเช่นลูป, ข้อความสั่งแบบมีเงื่อนไขและการส่งข้อความระหว่างฟังก์ชั่นหรือไม่? มีภาษาที่ไม่ลึกลับซึ่งโปรแกรมเมอร์ Java / Ruby / Haskell ทั่วไปจะไม่สามารถเข้าใจได้หรือไม่? ทุกภาษามีต้นกำเนิดร่วมกันหรือไม่?

5
ภาษาโปรแกรมเทียบกับภาษามาร์กอัปกับภาษาสคริปต์
จนถึงตอนนี้ฉันไม่ทราบความแตกต่างที่สำคัญระหว่างทั้งสามนี้ เมื่อมีคนถามฉันเกี่ยวกับเรื่องนี้ฉันจะบอกพวกเขาว่า C # เป็นภาษาการเขียนโปรแกรม HTML และ XML เป็นภาษามาร์กอัปและ JavaScript และ VBScript เป็นภาษาสคริปต์ แต่อะไรคือความแตกต่างที่สำคัญที่ทำให้พวกเขาแตกต่างจากคนอื่น?

8
ข้อเสียของการจัดการหน่วยความจำตามขอบเขต
ฉันชอบการจัดการหน่วยความจำตามขอบเขต (SBMM) หรือRAIIจริงๆแล้วเนื่องจากชุมชน C ++ เป็นที่รู้จักกันมากกว่าปกติ เท่าที่ฉันรู้ยกเว้น C ++ (และ C) ไม่มีภาษากระแสหลักอื่น ๆ ที่ใช้อยู่ในปัจจุบันซึ่งทำให้ SBMM / RAII เป็นกลไกการจัดการหน่วยความจำหลักและแทนที่จะต้องการใช้การรวบรวมขยะ (GC) ฉันพบว่ามันค่อนข้างสับสนตั้งแต่ SBMM ทำให้โปรแกรมกำหนดค่าได้มากขึ้น (คุณสามารถบอกได้อย่างแม่นยำเมื่อวัตถุถูกทำลาย) ในภาษาที่ใช้ GC คุณมักจะต้องทำการจัดการทรัพยากรด้วยตนเอง (ดูที่การปิดไฟล์ใน Java เช่น) ซึ่งบางส่วนเอาชนะวัตถุประสงค์ของ GC และยังมีข้อผิดพลาดเกิดขึ้นได้ง่าย หน่วยความจำฮีปสามารถ (ขอบเขตอย่างสวยงามมาก, imo) ได้เช่นกัน (ดูstd::shared_ptrใน C ++) ทำไม SBMM ถึงไม่ใช้กันอย่างแพร่หลาย? ข้อเสียของมันคืออะไร?

3
ทำไม `main` ไม่สามารถคืนค่า double หรือ String แทน int หรือ void ได้
ในหลายภาษาเช่น C, C ++ และ Java ที่mainวิธีการ / ฟังก์ชั่นมีประเภทการกลับมาของvoidหรือintแต่ไม่ได้หรือdouble Stringอะไรคือเหตุผลเบื้องหลัง ฉันรู้ว่านิด ๆ หน่อย ๆ ว่าเราไม่สามารถทำเช่นนั้นเพราะmainถูกเรียกโดยห้องสมุดรันไทม์และคาดว่าไวยากรณ์บางอย่างเช่นint main()หรือint main(int,char**)ดังนั้นเราจึงต้องติดว่า ดังนั้นคำถามของฉันคือ: ทำไมmainมีลายเซ็นประเภทที่มีและไม่แตกต่างกันอย่างไร

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