คำถามติดแท็ก language-design

คำถามที่เกี่ยวข้องกับการออกแบบและโครงสร้างของภาษาโปรแกรม

4
ความหมายที่ไม่ได้นิยามใน JavaScript คืออะไร? ทำไมถึงอยู่ที่นั่น? ประเพณีมีอะไรบ้าง? มันจะมีประโยชน์อย่างไร
ใน JavaScript เรามีสิ่งที่เรียกว่าไม่ได้กำหนด ฉันพูดอะไรบางอย่างเพราะฉันไม่รู้ว่ามันเป็นคลาสพื้นฐานหรือตัวแปรบิวด์อินหรือคำหลักหรืออย่างอื่น ฉันเพิ่งรู้ว่ามันมี หากต้องการดูการทำงานคุณสามารถเขียน: undefined; typeof undefined; ใครช่วยอธิบายหน่อยได้ไหมว่าทำไมสิ่งนี้ถึงถูกแทรกลงใน JavaScript? เรามีnullคุณค่าในภาษานี้ดังนั้นจึงไม่ควรเป็นแบบnullนี้ ในภาษาอื่นเมื่อเราไม่รู้ค่าของคุณสมบัติหรือตัวแปรเราก็ตั้งค่าเป็นโมฆะ ที่นี่เราสามารถทำสิ่งเดียวกัน เราจะใช้สิ่งนี้ใน JavaScript ได้อย่างไร?

2
กรอบการพัฒนาภาษาควรจะใช้ง่ายแค่ไหน?
นี่เป็นส่วนหนึ่งของชุดคำถามที่มุ่งเน้นโครงการที่เรียกว่า Abstraction Project ซึ่งมีจุดประสงค์เพื่อสรุปแนวคิดที่ใช้ในการออกแบบภาษาในรูปแบบของกรอบ หน้าอื่นที่เกี่ยวข้องกับมันที่เกี่ยวข้องกับการพิมพ์ที่มีโครงสร้างที่สามารถดูได้ที่นี่ เมตาหัวข้อที่เกี่ยวข้องกับสอบถามรายละเอียดเพิ่มเติมเกี่ยวกับกรอบและสถานที่ที่เหมาะสมในการโพสต์สามารถพบได้ที่นี่ มันง่ายแค่ไหนที่จะใช้ Framework การพัฒนาภาษา? ฉันได้เขียนกรอบการสร้างรหัสขนาดใหญ่ซึ่งรวมถึงความสามารถในการส่งผลลัพธ์ไปยังคอมไพเลอร์เฉพาะภาษา หัวข้อที่ใช้งานง่ายขึ้นมาจากตัวอย่างหนึ่งของกรอบงาน: CodeDOM หรือโมเดลเอกสารวัตถุรหัส มันเป็นกรอบงานที่เขียนโดย Microsoft ที่อธิบายโครงสร้างรหัสทั่วไป แต่โดยทั่วไปแล้วมักจะออกมาก (การแสดงออกทางสีหน้า) และมีแนวโน้มที่จะเป็นนามธรรมเล็กน้อยในการเป็นตัวแทนของการสร้างบางอย่างเพื่อการปล่อยรหัสไม่ดีอย่างจริงจัง CodeDOM ไม่ดีจัดการเปล่งPrivateImplementationTypeบนCodeMemberMethodเมื่อชนิดที่ใช้เป็นอินเตอร์เฟซทั่วไป CodeDOM เป็นเหตุผลดั้งเดิมของฉันในการเขียนโปรแกรมสร้างรหัสเครื่องแรก สิ่งหนึ่งที่ฉันพยายามทำเพื่อลดความซับซ้อนของเฟรมเวิร์กคือลดจำนวนงานที่คุณต้องทำบางอย่างและมุ่งเน้นไปที่การทำงานกับประเภทที่เฉพาะเจาะจงซึ่งประกอบไปด้วยการกระทำเหล่านั้น นี่คือการเปรียบเทียบแบบเคียงข้างกันว่าเฟรมเวิร์กที่ฉันเขียนนั้นทำงานอย่างไร: //Truncated... /* * * From a project that generates a lexer, this is the * state->state transition character range selection logic. * */ var nextChar …

5
ฟังก์ชั่นชั้นหนึ่ง
ฉันเริ่มดู Lisp อย่างจริงจังในสุดสัปดาห์นี้ (ซึ่งฉันหมายถึงฉันเพิ่งได้เรียนรู้ Lisp และไม่คืนกลับสู่โครงการใน C #) และต้องบอกว่าฉันรักมัน ฉันได้ขลุกกับภาษาอื่น ๆ ที่ใช้งานได้ (F #, Haskell, Erlang) แต่ไม่ได้รู้สึกว่า Lisp ให้ฉันมา ตอนนี้เมื่อฉันเรียนรู้ LISP ฉันก็เริ่มสงสัยว่าทำไมภาษาที่ไม่สามารถใช้งานได้ไม่รองรับฟังก์ชั่นชั้นหนึ่ง ฉันรู้ว่าภาษาเช่น C # สามารถทำสิ่งที่คล้ายกันกับผู้ได้รับมอบหมายและเท่าที่คุณสามารถใช้ตัวชี้เพื่อทำงานใน C / C ++ แต่มีเหตุผลว่าทำไมสิ่งนี้จะไม่กลายเป็นคุณสมบัติในภาษาเหล่านั้น? มีข้อเสียเปรียบในการทำฟังก์ชั่นชั้นหนึ่งหรือไม่? สำหรับฉันแล้วมันมีประโยชน์อย่างมากดังนั้นฉันจึงหลงทางว่าทำไมภาษาอื่น ๆ (นอกกระบวนทัศน์การทำงาน) จึงไม่ได้นำมาใช้ [แก้ไข] ฉันขอขอบคุณคำตอบที่ได้รับ เนื่องจากฉันได้รับการพิสูจน์แล้วว่าหลาย ๆ ภาษารองรับฟังก์ชั่นชั้นหนึ่งแล้วฉันจะตั้งคำถามอีกครั้งว่าทำไมมันใช้เวลานานมากในการใช้ภาษาเหล่านี้ [/ แก้ไข]

1
globals แบบคงที่และเนมสเปซที่ไม่ระบุชื่อใน C ++
เหตุใด C ++ จึงสร้างความแตกต่างระหว่างสถิตแบบคงที่ (การเชื่อมโยงภายใน) และสัญลักษณ์ในเนมสเปซที่ไม่มีชื่อ (การเชื่อมโยงภายนอก แต่ไม่มีวิธีการอ้างถึงจากภายนอกอย่างไรก็ตาม) เหตุผลเหล่านี้ยังคงใช้ได้หรือมีเหตุผลใหม่หรือไม่? มีสถานที่ใดบ้างที่ยังคงแตกต่างกันไป แต่ต้องมีกฎเกณฑ์ที่สหภาพนิรนามทั่วโลก (หรือขอบเขตของเนมสเปซ)staticที่ไม่ระบุชื่อและต้องเป็นอะไร สำหรับคะแนนโบนัสหากไม่มีเหตุผลดีๆที่ทำให้พวกเขาแตกต่างกันมีการขอให้เทียบเท่าหรือไม่? เมื่อ C ++ แนะนำเนมสเปซ (C ++ 98) และเนมสเปซที่ไม่มีชื่อโดยเฉพาะรูปทรงแบบคงที่ถูกเลิกใช้แล้วล้าสมัยและด้อยกว่าสิ่งใหม่ในความกระตือรือร้นแม้ว่ามันจะถูกเปลี่ยนกลับด้วย C ++ 11 : การ คัดค้านคำสำคัญ ... ไม่มาก ก่อน C ++ 11 สัญลักษณ์ที่มีการเชื่อมโยงภายในไม่สามารถใช้เป็นอาร์กิวเมนต์ของเทมเพลต: ทำไม C ++ 03 จึงต้องการให้พารามิเตอร์เทมเพลตมีการเชื่อมโยงภายนอก

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

1
ทำไมสวิฟท์จึงต้องมีโต๊ะสำหรับพยาน?
ฉันพยายามอ่านรายละเอียดการใช้งาน Swift และสิ่งหนึ่งที่ฉันไม่สามารถตะลึงได้คือ "โต๊ะพยาน" ดูเหมือนว่าพวกเขาเป็นตัวชี้ vtable แยกที่ใช้สำหรับ structs แต่ทำไมคุณต้องใช้มัน โครงสร้างจะถูกคัดลอกโดยค่าดังนั้นคุณจึงรู้อยู่แล้วในเวลารวบรวมว่าเป็นประเภทใด ดังนั้นคุณจะไม่เพียงรหัสยากที่วิธีการโทรและจะทำหรือไม่ ทำไมต้องทำการจัดส่งเสมือนกับวิธีการเหล่านี้

1
ความต่อเนื่องระดับเฟิร์สคลาสมีประโยชน์ในภาษาการเขียนโปรแกรมเชิงวัตถุสมัยใหม่หรือไม่?
การทำต่อเนื่องนั้นมีประโยชน์อย่างมากในภาษาโปรแกรมที่ใช้งานได้ (เช่นContmonad ใน Haskell) เพราะพวกมันยอมให้สัญกรณ์ง่ายและสม่ำเสมอสำหรับโค้ดสไตล์ที่จำเป็น นอกจากนี้ยังมีประโยชน์ในภาษาที่จำเป็นบางอย่างที่เก่ากว่าเพราะสามารถใช้ในการใช้คุณสมบัติภาษาที่ขาดหายไป (เช่นข้อยกเว้น coroutines, เธรดสีเขียว) แต่สำหรับภาษาเชิงวัตถุที่ทันสมัยด้วยการสนับสนุนในตัวสำหรับคุณลักษณะเหล่านี้สิ่งที่มีปากเสียงจะมีเป็นยังเพิ่มการสนับสนุนสำหรับตชั้นแรก (ไม่ว่าจะรูปแบบที่คั่นที่ทันสมัยมากขึ้นresetและshiftหรือโครงการเหมือนcall-with-current-continuation)? มีการขัดแย้งกับการเพิ่มการสนับสนุนอื่น ๆ นอกเหนือจากประสิทธิภาพการทำงานและความซับซ้อนของการดำเนินการ?

12
เหตุใดภาษาจึงไม่มีความสามารถในการเปรียบเทียบค่ากับค่าอื่นมากกว่าหนึ่งค่า [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา พิจารณาสิ่งต่อไปนี้: if(a == b or c) ในภาษาส่วนใหญ่จะต้องเขียนเป็น: if(a == b or a == c) ซึ่งค่อนข้างยุ่งยากและทำซ้ำข้อมูล ฉันรู้ว่าไวยากรณ์ตัวอย่างด้านบนของฉันค่อนข้าง clunky เล็กน้อย แต่ฉันแน่ใจว่ามีวิธีที่ดีกว่าในการถ่ายทอดความคิด ทำไมไม่มีภาษาให้มากกว่านี้ มีปัญหาเรื่องประสิทธิภาพหรือไวยากรณ์หรือไม่

3
วิธีใช้การประเมินผลขี้เกียจของ if ()
ขณะนี้ฉันกำลังใช้ตัวประเมินผลนิพจน์ (นิพจน์บรรทัดเดียว, เช่นสูตร) ​​ตามสิ่งต่อไปนี้: การแสดงออกที่ป้อนถูกโทเค็นเพื่อแยก booleans ตัวอักษรจำนวนเต็มทศนิยมสตริงฟังก์ชั่นตัวระบุ (ตัวแปร) ฉันใช้อัลกอริทึม Shunting-yard (แก้ไขเบา ๆ เพื่อจัดการฟังก์ชันที่มีจำนวนตัวแปรที่มีข้อโต้แย้ง) เพื่อกำจัดวงเล็บและสั่งให้ผู้ประกอบการที่มีความสำคัญมาก่อนในลำดับ postfixed shunting-yard ของฉันสร้างคิวโทเค็น (จำลอง) (โดยใช้อาร์เรย์อาร์เรย์ภาษา Powerbuilder Classic ของฉันสามารถกำหนดวัตถุ แต่มีอาร์เรย์แบบไดนามิกเป็นหน่วยเก็บข้อมูลดั้งเดิมไม่ใช่รายการจริงไม่มีพจนานุกรม) ที่ฉันประเมินตามลำดับด้วย เครื่องกองง่าย ผู้ประเมินของฉันทำงานได้ดี แต่ฉันก็ยังขาดif()และฉันก็สงสัยว่าจะดำเนินการต่อไปอย่างไร ถ้าฉันเพิ่มif()ฟังก์ชันอื่นที่มีส่วนที่เป็นจริงและเท็จอยู่คนเดียวif(true, msgbox("ok"), msgbox("not ok"))จะแสดงข้อความทั้งสองในขณะที่ฉันต้องการจะแสดงเพียงข้อความเดียว นี่เป็นเพราะเมื่อฉันต้องการประเมินฟังก์ชั่นข้อโต้แย้งทั้งหมดได้รับการประเมินและวางลงบนสแต็ก คุณช่วยให้ฉันใช้if()วิธีขี้เกียจบางอย่าง? ฉันคิดว่าการประมวลผลเหล่านี้เป็นมาโครชนิดหนึ่ง แต่ในตอนแรกฉันยังไม่ได้ประเมินสภาพ บางทีฉันอาจต้องใช้โครงสร้างชนิดอื่นที่ไม่ใช่คิวเพื่อแยกเงื่อนไขและนิพจน์จริง / เท็จออกจากกัน? สำหรับตอนนี้นิพจน์จะถูกวิเคราะห์ก่อนการประเมินผล แต่ฉันยังวางแผนที่จะเก็บการแทนค่ากลางไว้เป็นชนิดของนิพจน์ที่คอมไพล์แล้วสำหรับการประเมินในอนาคต แก้ไข : หลังจากที่แม้ว่าบางอย่างเกี่ยวกับปัญหาที่เกิดขึ้นผมคิดว่าผมสามารถสร้างตัวแทนต้นไม้ในการแสดงออกของฉัน (เป็น AST แทนกระแสโทเค็นเชิงเส้น) if()จากที่ผมได้อย่างง่ายดายสามารถละเว้นหนึ่งหรือสาขาอื่นของฉัน

4
การเขียนโปรแกรมความรู้วิธีการออกแบบที่ดี / ไม่ดี
ฉันได้พบเมื่อเร็ว ๆ นี้แนวคิดของการเขียนโปรแกรมความรู้ และฉันก็พบว่ามันค่อนข้างน่าสนใจ แต่ฉันไม่ได้พบกับการอ้างว่ามันเป็นวิธีที่ไม่ดีในการจัดโครงสร้างโปรแกรม ดูเหมือนจะไม่ครอบคลุมหลายสถานที่ ไม่แม้แต่ที่นี่ฉันสามารถพบคำถามใด ๆ เกี่ยวกับเรื่องนี้ คำถามของฉันไม่ได้เกี่ยวกับข้อบกพร่องหรือวิธีการจัดการเอกสาร ฉันพิจารณาเอกสารข้างเคียงของสิ่งที่มันจะมีความหมายสำหรับการไหลของการเขียนโปรแกรมความรู้ ฉันรู้ว่าการออกแบบนั้นมีจุดประสงค์เพื่อให้ง่ายต่อการจัดทำเอกสารรวมถึงแนวคิดของโฟลว์การเขียนโปรแกรม ไปข้างหน้า แนวคิดของการแบ่งปัญหาออกเป็นปัญหาประโยคเล็ก ๆ ดูเหมือนจะเป็นแนวคิดที่ยอดเยี่ยมจริงๆ มันจะช่วยลดความเข้าใจในการไหลของโปรแกรม ผลที่ตามมาของวิธีการออกแบบความรู้ก็คือจำนวนฟังก์ชั่นที่ต้องการจะถูก จำกัด ด้วยจินตนาการของโปรแกรมเมอร์ แทนที่จะกำหนดฟังก์ชั่นสำหรับงานบางอย่างมันสามารถสร้างเป็นscrapในวิธีการรู้หนังสือ สิ่งนี้จะทำให้การแทรกโค้ดโดยอัตโนมัติแทนที่จะเป็นการรวบรวมฟังก์ชั่นแยกต่างหากและความต้องการที่ตามมาของขั้นตอนการปรับการคอมไพล์ระหว่างขั้นตอนเพื่อให้ได้ความเร็วที่เท่าเทียมกัน ในความเป็นจริงความพยายามครั้งแรกของ Donald E. Knuthแสดงให้เห็นว่ามีเวลาดำเนินการที่ต่ำกว่าเนื่องจากความเป็นจริงนี้ ฉันรู้ว่าคอมไพเลอร์สามารถทำสิ่งนี้ได้มากมาย แต่นี่ไม่ใช่ความกังวลของฉัน ดังนั้นฉันจึงต้องการรับข้อเสนอแนะว่าทำไมจึงควรพิจารณาวิธีการออกแบบที่ไม่ดี / ดี?

6
จะตรวจสอบ / พิสูจน์ความถูกต้องของภาษาโปรแกรมได้อย่างไร?
ฉันรู้แนวคิดของ orthogonality แต่จากมุมมองภาษาการเขียนโปรแกรมมีวิธีการตรวจสอบ / พิสูจน์หรือไม่ ตัวอย่างเช่นใน C # หนึ่งสามารถใช้publicหรือstaticลายเซ็นวิธี คุณสามารถใช้อย่างใดอย่างหนึ่งหรือทั้งสองและพวกเขาจะไม่รบกวนซึ่งกันและกันดังนั้นพวกเขาจึงมีมุมฉากซึ่งกันและกันใช่มั้ย คำถามของฉันคือฉันจะไปเกี่ยวกับคุณสมบัติที่เหลือโดยเฉพาะอย่างยิ่งคุณสมบัติที่ไม่เกี่ยวข้องกันได้อย่างไร คุณสมบัติทั้งหมดต้องอยู่ร่วมกัน / ซ้อนกันหรือไม่? มีภาษาการเขียนโปรแกรมที่เป็นมุมฉาก 100% หรือไม่?

5
การสร้าง DSL: เขียนสคริปต์บนภาษาที่ใช้งานทั่วไปหรือแบบสแตนด์อโลน
ฉันกำลังถกเถียงกันเรื่องการออกแบบภาษาเฉพาะโดเมนเพื่อทำให้รูปแบบการเขียนโปรแกรมไม่ชัดเจนและง่ายขึ้น ส่วนหนึ่งของการอภิปรายคือการสร้าง (เป็นสคริปต์) บนภาษา / รันไทม์ที่มีอยู่ (เช่น Java) หรือเพื่อให้เป็นแบบสแตนด์อโลน (คอมไพเลอร์ของตัวเอง & c) ผู้ที่มีประสบการณ์การออกแบบ DSL คุณมีข้อดี / ข้อเสียและหรือคำตอบที่แน่นอนสำหรับวิธีการที่เหมาะสมหรือไม่?

3
ทำไม java generics ไม่สามารถอยู่ในอาร์เรย์ได้?
ทำไมเมื่อฉันพยายามสร้าง ArrayLists: ArrayList<Integer>[] arr=new ArrayList<Integer>[40];มีข้อผิดพลาดและ java ไม่อนุญาตสิ่งนี้ มีเหตุผลที่เกี่ยวข้องกับการใช้งาน generics ของจาวา, generics ในภาษาใด ๆ หรือบางสิ่งบางอย่างโดยพลการ?

1
ชื่อของเทคนิคสำหรับอาร์กิวเมนต์ประเภทอนุมานของพารามิเตอร์ชนิดหรือไม่
ตั้งค่า:สมมติว่าเรามีประเภทที่เรียกว่าIteratorซึ่งมีพารามิเตอร์ประเภทElement: interface Iterator<Element> {} แล้วเรามีอินเตอร์เฟซที่มีวิธีการหนึ่งที่จะกลับIterableIterator // T has an upper bound of Iterator interface Iterable<T: Iterator> { getIterator(): T } ปัญหาของIteratorการเป็นแบบทั่วไปคือเราต้องระบุอาร์กิวเมนต์ประเภท แนวคิดหนึ่งในการแก้ไขปัญหานี้คือ "อนุมาน" ประเภทของตัววนซ้ำ หลอกรหัสต่อไปนี้เป็นการแสดงออกถึงความคิดที่ว่ามีตัวแปรประเภทElementซึ่งอนุมานว่าจะเป็นอาร์กิวเมนต์ประเภทไปที่Iterator: interface <Element> Iterable<T: Iterator<Element>> { getIterator(): T } จากนั้นเราก็ใช้มันในที่นี้: class Vec<Element> implements Iterable<VecIterator<Element>> {/*...*/} คำจำกัดความของคำIterableว่าไม่ใช้Elementที่อื่นในคำจำกัดความของมัน แต่กรณีใช้งานจริงของฉัน ฟังก์ชั่นบางอย่างที่ใช้Iterableยังจำเป็นต้องสามารถ จำกัด พารามิเตอร์ของตนเพื่อยอมรับIterables ซึ่งคืนค่าตัววนซ้ำบางชนิดเช่นตัววนซ้ำสองทิศทาง คำถาม: มีชื่อที่กำหนดขึ้นสำหรับตัวแปรประเภทอนุมานเหล่านี้หรือไม่ เทคนิคโดยรวมเป็นอย่างไร การไม่รู้ระบบการตั้งชื่อเฉพาะทำให้การค้นหาตัวอย่างของสิ่งนี้เป็นเรื่องยากหรือเรียนรู้เกี่ยวกับคุณลักษณะเฉพาะทางภาษา ไม่ใช่ทุกภาษาที่มีชื่อสามัญมีเทคนิคนี้ …

4
มีสิ่งอำนวยความสะดวกด้านภาษาของเครื่องกำเนิดไฟฟ้าเช่น `yield 'เป็นความคิดที่ดีหรือไม่?
PHP, C #, Python และภาษาอื่น ๆ สองสามภาษามีyieldคำสำคัญที่ใช้ในการสร้างฟังก์ชั่นเครื่องกำเนิดไฟฟ้า ใน PHP: http://php.net/manual/en/language.generators.syntax.php ใน Python: https://www.pythoncentral.io/python-generators-and-yield-keyword/ ใน C #: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/yield ฉันกังวลว่าในฐานะคุณสมบัติทางภาษา / สิ่งอำนวยความสะดวกyieldแบ่งการประชุมบางส่วน หนึ่งในนั้นคือสิ่งที่ฉันจะอ้างถึงคือ "ความแน่นอน" มันเป็นวิธีการที่ส่งกลับผลลัพธ์ที่แตกต่างกันทุกครั้งที่คุณเรียกมัน ด้วยฟังก์ชั่นที่ไม่ใช่เครื่องกำเนิดไฟฟ้าปกติคุณสามารถเรียกมันได้และถ้ามันได้รับอินพุตเดียวกันมันก็จะส่งคืนเอาต์พุตเดียวกัน ด้วยผลผลิตจะส่งคืนเอาต์พุตที่ต่างกันตามสถานะภายใน ดังนั้นหากคุณสุ่มเรียกใช้ฟังก์ชันการสร้างโดยไม่ทราบสถานะก่อนหน้าคุณจะไม่สามารถคาดหวังว่าจะให้ผลลัพธ์ที่แน่นอน ฟังก์ชั่นเช่นนี้เหมาะสมกับกระบวนทัศน์ทางภาษาอย่างไร จริง ๆ แล้วมันเป็นการทำลายอนุสัญญาใด ๆ เป็นความคิดที่ดีที่จะมีและใช้คุณสมบัตินี้หรือไม่? (เพื่อเป็นตัวอย่างของสิ่งที่ดีและสิ่งที่ไม่ดีgotoเคยเป็นคุณสมบัติของหลายภาษาและยังคงเป็น แต่มันก็ถือว่าเป็นอันตรายและถูกกำจัดให้หมดไปจากบางภาษาเช่น Java) คอมไพเลอร์ภาษาโปรแกรม / ล่ามต้องแยกออกจากอนุสัญญาใด ๆ ที่จะใช้คุณลักษณะดังกล่าวตัวอย่างเช่นภาษาต้องใช้หลายเธรดสำหรับคุณลักษณะนี้ในการทำงานหรือสามารถทำได้โดยไม่ต้องเทคโนโลยีเกลียว?

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