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

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

9
การจัดการหน่วยความจำในการเขียนโปรแกรมกลายเป็นปัญหาที่ไม่เกี่ยวข้องหรือไม่?
ความเป็นมา ฉันเยี่ยมชมเว็บไซต์เก่า (แต่ยอดเยี่ยม) ที่ฉันไม่เคยไปมานานหลายปี - Alioth Language Shootout ( http://benchmarksgame.alioth.debian.org/ ) ฉันเริ่มเขียนโปรแกรมใน C / C ++ หลายปีที่ผ่านมา แต่หลังจากนั้นก็ทำงานใน Java โดยเฉพาะเนื่องจากข้อ จำกัด ทางภาษาในโครงการที่ฉันเข้าร่วมไม่จำตัวเลขได้ฉันต้องการเห็นประมาณว่า Java ดีแค่ไหน อาการเทียบกับ C / C ++ ในแง่ของการใช้ทรัพยากร เวลาการดำเนินการยังคงค่อนข้างดีกับ Java ที่เลวร้ายที่สุดที่มีประสิทธิภาพ 4x ช้ากว่า C / C ++ แต่ในรอบเฉลี่ย (หรือต่ำกว่า) 2x เนื่องจากลักษณะของการนำ Java มาใช้เองจึงไม่แปลกใจเลยและเวลาในการแสดงนั้นต่ำกว่าที่ฉันคาดไว้จริงๆ อิฐจริงคือการจัดสรรหน่วยความจำ - ที่แย่ที่สุดคือ Java จัดสรร: …

12
รวบรวมทางเลือกสมัยใหม่เพื่อ C / C ++ [ปิด]
ฉันกำลังพิจารณาที่จะเขียนผลิตภัณฑ์ซอฟต์แวร์ใหม่ ประสิทธิภาพจะมีความสำคัญดังนั้นฉันจึงระมัดระวังในการใช้การตีความหรือภาษาหรือสิ่งที่ใช้เลเยอร์การจำลอง (อ่าน java) ซึ่งทำให้ฉันคิดถึงการใช้ C (หรือ C ++) แต่สิ่งเหล่านี้ค่อนข้างยาวในฟัน ฉันไม่ได้ใช้มานาน ฉันคิดว่าในช่วง 20 ปีที่ผ่านมามีคนบางคนอาจสร้างบางสิ่งบางอย่างที่เป็นที่นิยมพอสมควรดีที่เขียนโค้ดและเรียบเรียง มีทางเลือกอื่นใดที่ทันสมัยกว่าสำหรับการเขียนโค้ดที่รวบรวมประสิทธิภาพสูง? ถ้า C ++ เป็นสัตว์ร้ายที่แตกต่างจากเมื่อ 15 ปีก่อนฉันจะพิจารณาฉันเดาว่าฉันมีข้อสันนิษฐานว่ามันมีปัญหาบางอย่าง การขนานจะมีความสำคัญ แต่อาจไม่ได้อยู่ในหลาย ๆ เครื่อง

26
สิ่งใดที่คุณต้องการให้นักออกแบบภาษาให้ความสนใจ? [ปิด]
วัตถุประสงค์ของคำถามนี้คือการรวบรวมรายการซักผ้าของคุณสมบัติการเขียนโปรแกรมภาษาที่คุณขาดไม่ได้หรือต้องการเป็นภาษาหลักที่คุณเลือก จุดประสงค์ของคำถามนี้คือนำเสนอมุมมองของการออกแบบที่อ่อนล้านักออกแบบภาษาส่วนใหญ่อาจไม่ได้คิดถึง ดังนั้นแทนที่จะคิดเกี่ยวกับคุณสมบัติภาษา X ลองคิดดูฟิสโซฟิคสักหน่อย หนึ่งในอคติของฉันและบางทีมันอาจเป็นการโต้เถียงกันคือด้านวิศวกรรมที่นุ่มนวล - สิ่งที่ควรทำ - สิ่งสำคัญคือหลายครั้งที่สำคัญกว่าด้านคอนกรีต ตัวอย่างเช่น Ruby ได้รับการออกแบบโดยมีเป้าหมายเพื่อพัฒนาความสุขของนักพัฒนา ในขณะที่ความคิดเห็นของคุณอาจถูกปนกันไม่ว่าจะนำเสนอหรือไม่ก็ตามความจริงที่เป็นเป้าหมายนั้นหมายความว่าตัวเลือกบางอย่างในการออกแบบภาษาได้รับอิทธิพลจากปรัชญานั้น กรุณาอย่าโพสต์: สงครามเปลวไฟวากยสัมพันธ์ มาดูกันเรามีการตั้งค่าของเราและไวยากรณ์เป็นสิ่งสำคัญตามที่เกี่ยวข้องกับการออกแบบภาษา ฉันแค่ต้องการหลีกเลี่ยงการต่อสู้ที่ยิ่งใหญ่ของธรรมชาติของ emacs กับ VI (ซึ่งผู้คนจำนวนมากในทุกวันนี้ไม่รู้อะไรเลย) "ภาษาใด ๆ ที่ไม่มีคุณลักษณะ X ไม่สมควรมีอยู่" พิมพ์ข้อคิดเห็น มีอย่างน้อยหนึ่งเหตุผลสำหรับภาษาการเขียนโปรแกรมทั้งหมดที่มีอยู่ - ดีหรือไม่ดี โปรดทำโพสต์: แนวความคิดที่เป็นแนวร่วมที่นักออกแบบภาษาดูเหมือนจะพลาด แนวคิดทางเทคนิคที่ดูเหมือนว่าจะนำมาใช้ไม่ดีบ่อยกว่าไม่ โปรดยกตัวอย่างความเจ็บปวดที่เกิดขึ้นและหากคุณมีความคิดว่าคุณต้องการให้มันทำงานอย่างไร สิ่งที่คุณต้องการอยู่ในห้องสมุดทั่วไปของแพลตฟอร์ม แต่ไม่ค่อยมี หนึ่งในโทเค็นเดียวกันสิ่งต่าง ๆ ที่มักจะอยู่ในห้องสมุดทั่วไปที่คุณไม่ต้องการ คุณสมบัติด้านแนวคิดเช่นการสนับสนุนการจัดการการทดสอบ / การยืนยัน / สัญญา / ข้อผิดพลาดที่คุณต้องการให้ภาษาการเขียนโปรแกรมทั้งหมดจะใช้งานได้อย่างถูกต้องและกำหนดอย่างเหมาะสม ฉันหวังว่ามันจะเป็นหัวข้อที่สนุกและน่าตื่นเต้น แก้ไข: อธิบายสิ่งที่ฉันหมายถึงโดย …

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

6
เหตุใดการทดสอบภาษาจึงไม่รองรับคุณสมบัติที่ระดับไวยากรณ์
คุณสามารถค้นหารายการบล็อกบทความและเว็บไซต์ที่ไม่สิ้นสุดซึ่งส่งเสริมประโยชน์ของการทดสอบหน่วยซอร์สโค้ดของคุณ เกือบจะรับประกันได้ว่านักพัฒนาที่เขียนโปรแกรมคอมไพเลอร์สำหรับ Java, C ++, C # และภาษาที่พิมพ์อื่น ๆ ใช้การทดสอบหน่วยเพื่อตรวจสอบงานของพวกเขา ดังนั้นทำไมแม้จะมีความนิยมของมันคือการทดสอบขาดจากไวยากรณ์ของภาษาเหล่านี้หรือไม่ Microsoft แนะนำLINQให้กับC #ดังนั้นทำไมพวกเขาจึงไม่สามารถเพิ่มการทดสอบได้อีกด้วย ฉันไม่ต้องการคาดการณ์ว่าการเปลี่ยนแปลงภาษาเหล่านั้นจะเป็นเช่นไร แต่เพื่ออธิบายให้ชัดเจนว่าทำไมพวกเขาถึงไม่เริ่มต้นด้วย เป็นตัวอย่าง: เรารู้ว่าคุณสามารถเขียนforลูปโดยไม่มีไวยากรณ์ของforคำสั่ง คุณสามารถใช้whileหรือif/ gotoงบ มีคนตัดสินใจว่าforข้อความนั้นมีประสิทธิภาพมากกว่าและนำมาใช้เป็นภาษา ทำไมการทดสอบไม่ได้ทำตามวิวัฒนาการของภาษาโปรแกรมเดียวกัน?

3
ความแตกต่างระหว่าง REPL และเชลล์แบบโต้ตอบ
Noob คำถาม ฉันไม่สามารถบอกความแตกต่างระหว่างREPLและเชลล์เชิงโต้ตอบได้โดยการอ่านคำจำกัดความบน Wikipedia Wiki ตั้งข้อสังเกตว่า REPL เป็นเชลล์แบบโต้ตอบชนิดหนึ่งโดยเฉพาะ มันเป็นเซตย่อยที่เหมาะสมหรือไม่? คำจำกัดความของ Wiki ดูเหมือนว่าจะ จำกัด คำศัพท์ REPL เป็นภาษาที่เหมือนเสียงกระเพื่อมในขณะที่คุณสมบัติที่ระบุไม่ได้มีคุณสมบัติที่แตกต่างกันจริงๆ โดยเฉพาะอย่างยิ่งมันถูกต้องหรือไม่ที่จะโทรหา IPython a REPL?

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

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

11
“ blub paradox” และ c ++
ฉันอ่านบทความที่นี่: http://www.paulgraham.com/avg.htmlและส่วนหนึ่งเกี่ยวกับ "blub paradox" นั้นน่าสนใจเป็นพิเศษ ในฐานะที่เป็นคนที่ใช้รหัสใน c ++ เป็นหลัก แต่มีการสัมผัสกับภาษาอื่น ๆ (ส่วนใหญ่เป็น Haskell) ฉันรู้ว่ามีบางสิ่งที่มีประโยชน์ในภาษาเหล่านี้ซึ่งยากที่จะทำซ้ำใน c ++ คำถามส่วนใหญ่สำหรับคนที่มีความเชี่ยวชาญทั้งใน c ++ และภาษาอื่น ๆ มีคุณสมบัติภาษาที่ทรงพลังหรือสำนวนที่คุณใช้ในภาษาที่ยากที่จะคิดหรือนำไปใช้ถ้าคุณเขียนเฉพาะใน c ++? โดยเฉพาะอย่างยิ่งคำพูดนี้ดึงดูดความสนใจของฉัน: โดยอุปนัยผู้เขียนโปรแกรมเพียงคนเดียวที่สามารถเห็นความแตกต่างของอำนาจระหว่างภาษาต่าง ๆ คือผู้ที่เข้าใจผู้ที่มีอำนาจมากที่สุด (นี่อาจเป็นสิ่งที่ Eric Raymond มีความหมายเกี่ยวกับ Lisp ทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้น) คุณไม่สามารถไว้วางใจความคิดเห็นของผู้อื่นได้เนื่องจาก Blub Paradox: พวกเขาพอใจกับภาษาใดก็ตามที่พวกเขาใช้เพราะมันกำหนด วิธีที่พวกเขาคิดเกี่ยวกับโปรแกรม หากปรากฎว่าฉันเป็นเทียบเท่าโปรแกรมเมอร์ "Blub" โดยอาศัยการใช้ c ++ สิ่งนี้ทำให้เกิดคำถามต่อไปนี้: มีแนวคิดหรือเทคนิคที่มีประโยชน์ที่คุณพบในภาษาอื่นที่คุณคิดว่ายากที่จะทำให้เป็นแนวคิดได้หรือไม่ เคยเขียนหรือ "คิด" ใน c …

17
ฉันจะรู้สึกมั่นใจมากขึ้นเกี่ยวกับทักษะการเขียนโปรแกรมของฉันได้อย่างไร [ปิด]
การเขียนโปรแกรมไม่ใช่คนต่างด้าวสำหรับฉัน ฉันเริ่มทำมาร์กอัพ (HTML ตอนนี้โปรดอย่าหัวเราะเยาะฉัน) เมื่อฉันอายุได้ 12 ปีและ BASIC เล็กน้อยเมื่อฉันอายุ 13 (ฉันรู้มากเกี่ยวกับ Flowcharts, Pseudocodes ณ จุดนี้) แต่แล้วฉันก็ถูกตักเตือนเป็น ชีววิทยาในโรงเรียนมัธยมและด้วยเหตุนี้จึงพลาดความรู้ด้านการเขียนโปรแกรม "ของจริง" ของภาษาเช่น C, Java, etcetera ฉันใช้ CS กับ UG BE ของฉัน (คล้ายกับ BS แต่เป็นไปตามทฤษฎีมากกว่า) ฉันเรียน C & C ++ (ในระดับที่น้อยกว่า) ด้วยตัวเอง (ศาสตราจารย์ของฉันเจ็บปวดมากและชั้นเรียนเต็มไปด้วย code-jocks (ที่เรียนมาแล้วในโรงเรียนและด้วยเหตุนี้ไม่สนใจห้องเรียน) ให้ปุถุชนน้อยกว่าอย่างฉันให้ความสนใจกับชั้นเรียนด้วย) และสามารถชักนำโปรแกรมการบวกหรือการคูณที่ยอดเยี่ยม (อันที่ตอนนี้แม้แต่ผู้ทำสวนเองก็ใจดีด้วย) ปัญหาหลักของฉันคือฉันรู้สึกไม่ดีและบีบคอด้วยทักษะการเขียนโปรแกรมที่ จำกัด ของฉันและดูหมิ่นโดย code-jocks (เชื่อฉันสิฉันเจอเว็บไซต์นี้มานานแล้ว แต่ตอนนี้อาจสร้างความกล้าหาญที่จะโพสต์จริง …

11
เหตุใดจึงไม่มีนักแปลอัตโนมัติจากภาษาโปรแกรมหนึ่งไปอีกภาษาหนึ่ง [ปิด]
ภาษาโปรแกรมส่วนใหญ่นั้นทัวริงสมบูรณ์ซึ่งหมายความว่างานใด ๆ ที่สามารถแก้ไขได้ในภาษาหนึ่งสามารถแก้ไขได้ในอีกภาษาหนึ่งหรือแม้กระทั่งในเครื่องทัวริง ถ้าเช่นนั้นทำไมไม่มีนักแปลอัตโนมัติที่สามารถแปลงโปรแกรมจากภาษาใด ๆ เป็นภาษาอื่นได้? ฉันเคยเห็นความพยายามสองครั้งสำหรับสองภาษา แต่พวกเขามักจะทำงานกับชุดย่อยที่ จำกัด ของภาษาและแทบจะไม่สามารถใช้สำหรับการแปลงโครงการจริง เป็นไปได้อย่างน้อยในทางทฤษฎีที่จะเขียนนักแปลที่ถูกต้อง 100% ระหว่างทุกภาษา? ความท้าทายในทางปฏิบัติคืออะไร? มีนักแปลคนใดบ้างที่ใช้งานได้

8
มีข้อยกเว้นแนวคิด OOP หรือไม่
เมื่ออ่านโพสต์เมื่อวานนี้ฉันรู้ว่าฉันไม่รู้เกี่ยวกับที่มาของข้อยกเว้นมากนัก เป็นแนวคิดที่เกี่ยวข้องกับ OOP เท่านั้นหรือไม่ ฉันมักจะคิดว่ามันเป็น แต่อีกครั้งมีข้อยกเว้นฐานข้อมูล

2
ภาษาการเขียนโปรแกรมรุ่นที่ 4 และ 5 คืออะไร มีอะไรอีกบ้าง? [ปิด]
เนื่องจากมันถูกจำแนกในระดับโรงเรียน / วิทยาลัยภาษาการเขียนโปรแกรมยอดนิยม (C #, Java, C ++) เป็นภาษาที่ 3 ทั้งหมด (ด้วยระดับที่สูงกว่าของนามธรรมจากชิ้นส่วนทางกายภาพของเครื่อง) นอกจากนี้ภาษาแอสเซมบลีถูกจัดประเภทเป็นภาษาที่ 2 และภาษาเครื่องเป็นภาษาที่ 1 ตอนแรกฉันคิดว่า SQL ควรถูกพิจารณาว่าเป็นภาษาเจนเนอเรชั่นที่ 4 เพราะมันเป็นนามธรรมและห่างไกลจากรายละเอียดของการวนซ้ำและการอธิบายเพิ่มเติม ตอนนี้ฉันพบว่ามีภาษารุ่นที่ 4 และรุ่นที่ 5 แต่อะไรคือพื้นฐานของภาษาโปรแกรมหรือเทคโนโลยีใด ๆ ที่จะจัดประเภทเป็นภาษารุ่นที่ 4 หรือ 5 นอกจากนี้ยังมีภาษารุ่นที่ 6 หรือ 7 เช่นกัน?

9
ทำไมโรงเรียนสอนอาร์เรย์มากกว่ารายการ? [ปิด]
งานมอบหมายส่วนใหญ่ในโรงเรียนของฉันสำหรับชั้นเรียนการเขียนโปรแกรมเริ่มต้นนั้นทำให้ฉันต้องใช้อาร์เรย์ ฉันทำงานเต็มเวลาแล้วและฉันไม่เคยใช้อาร์เรย์สำหรับโครงการใด ๆ ที่ฉันได้ทำงานมา แม้แต่ในโครงการที่มีอยู่ฉันก็ไม่เคยเห็นการใช้อาร์เรย์ที่ไหนเลย ในความคิดของฉันรายการใช้งานง่ายกว่าและเป็นมาตรฐาน เหตุใดอาจารย์บอกให้นักเรียนใช้อาร์เรย์ในการบ้าน เป็นเพียงเพื่อให้นักเรียนเข้าใจพื้นฐานหรือไม่ เนื่องจากมหาวิทยาลัยส่วนใหญ่สอน Java คำถามนี้เฉพาะกับ Java

7
ทำไมหลายภาษาจึงผ่านค่า?
แม้แต่ภาษาที่คุณมีการจัดการตัวชี้อย่างชัดเจนเช่น C มันจะถูกส่งผ่านตามค่าเสมอ (คุณสามารถส่งต่อโดยการอ้างอิง แต่นั่นไม่ใช่พฤติกรรมเริ่มต้น) ประโยชน์ของสิ่งนี้คืออะไรทำไมมีหลายภาษาที่ผ่านค่านิยมและทำไมคนอื่นถึงผ่านอ้างอิง ? (ฉันเข้าใจว่า Haskell ผ่านการอ้างอิงถึงแม้ว่าฉันไม่แน่ใจ)

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