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

6
เหตุใดจึงต้องใช้ lexer เป็นอาร์เรย์ 2d และสวิตช์ขนาดยักษ์
ฉันทำงานอย่างช้าๆเพื่อจบปริญญาของฉันและภาคเรียนนี้คือ Compilers 101 เรากำลังใช้Dragon Bookอยู่ ไม่นานในหลักสูตรและเรากำลังพูดถึงการวิเคราะห์คำศัพท์และวิธีการที่จะสามารถนำไปใช้ผ่านทางออปติคัลไฟไนต์ จำกัด (ต่อไปนี้คือ DFA) ตั้งค่าสถานะ lexer ต่างๆกำหนดช่วงการเปลี่ยนภาพเป็นต้น แต่ทั้งศาสตราจารย์และหนังสือเสนอให้นำพวกมันไปใช้ผ่านตารางการเปลี่ยนแปลงซึ่งมีขนาดเท่ากับอาร์เรย์ 2 มิติขนาดใหญ่ (สถานะที่ไม่ใช่เทอร์มินัลต่างๆเป็นมิติเดียวและสัญลักษณ์อินพุตที่เป็นไปได้อื่น ๆ ) และคำสั่งสวิตช์ เช่นเดียวกับส่งไปยังตารางการเปลี่ยนแปลงหากอยู่ในสถานะที่ไม่ใช่ขั้ว ทฤษฎีนี้เป็นสิ่งที่ดีและดี แต่ในฐานะคนที่เขียนโค้ดจริง ๆ มาหลายสิบปี มันไม่สามารถทดสอบได้มันไม่สามารถบำรุงรักษาได้ไม่สามารถอ่านได้และมันเป็นความเจ็บปวดและครึ่งหนึ่งในการแก้ไขข้อบกพร่อง ยิ่งไปกว่านั้นฉันยังไม่เห็นว่ามันจะเป็นประโยชน์จากระยะไกลได้อย่างไรหากภาษานั้นมีความสามารถใน UTF การมีรายการตารางการเปลี่ยนแปลงนับล้านรายการต่อรัฐที่มินัลนั้นได้รับความไม่รีบร้อน ดังนั้นการจัดการคืออะไร? เหตุใดหนังสือที่ชัดเจนถึงเรื่องที่บอกว่าทำแบบนี้? ฟังก์ชั่นโอเวอร์เฮดเรียกได้มากขนาดนั้นจริงเหรอ? นี่เป็นสิ่งที่ใช้งานได้ดีหรือจำเป็นเมื่อไวยากรณ์ไม่ทราบล่วงหน้า (นิพจน์ทั่วไป?) หรือบางทีสิ่งที่จัดการกับทุกกรณีแม้ว่าวิธีแก้ปัญหาที่เฉพาะเจาะจงมากขึ้นจะทำงานได้ดีขึ้นสำหรับไวยากรณ์ที่เฉพาะเจาะจงมากขึ้น? ( หมายเหตุ:เป็นไปได้ที่ซ้ำกัน " ทำไมใช้วิธีการ OO แทนคำสั่งสวิตช์ขนาดใหญ่? " อยู่ใกล้ แต่ฉันไม่สนใจ OO วิธีการใช้งานหรือแม้แต่วิธีการเตือนแบบ saner ด้วยฟังก์ชันแบบสแตนด์อโลนก็ดี) [a-zA-Z]+และเพื่อเห็นแก่ตัวอย่างให้พิจารณาภาษาที่มีเพียงตัวบ่งชี้และตัวบ่งชี้เหล่านั้น ในการติดตั้ง DFA …

11
วิธีที่จะไม่ทุกข์ทรมานจากนักอุดมการณ์เมื่อคุณเป็นคนในทางปฏิบัติ? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันเป็นคนที่จริงจัง (ฉันคิดว่าฉันเป็น แต่แล้วอีกครั้งจอนที่นี่มีจุดที่น่าสนใจ) บางครั้งวิธีแก้ปัญหาที่ง่ายที่สุดในการทำให้งานเสร็จเป็นวิธีที่ดีที่สุดสำหรับฉันถ้าไม่ใช่การดูหมิ่นและตำหนิในหลักการออกแบบใด ๆ ตรวจสอบคำตอบของฉันคำถามนี้ในกองมากเกิน ง่าย โรงงาน ได้รับการยอมรับ ควรปรับปรุง เห็นได้ชัดว่าไม่สมบูรณ์และไม่ซับซ้อนมาก และตามมาผู้ชายคนนี้ เขาลงคะแนนให้ฉันแสดงความคิดเห็นต่อคำถามว่าคำตอบของเขาดีกว่าถูกต้องแม่นยำกว่าและเมื่อฉันถามเขาว่าทำไมเขาลงคะแนนฉันเขาเรียกฉันผิดในความคิดเห็นของเขา เตือนฉันเกี่ยวกับการ์ตูนแนวนี้ เพียงเพื่อให้ตรงนี้: คำตอบของเขาชัดเจนขึ้น แต่ไม่ thats จุด! ในขณะที่ Stack Overflow ฉันสามารถหัวเราะและไม่สนใจสิ่งเหล่านี้จริงๆเพราะคนเหล่านั้นอยู่ห่างไกลในโลกแห่งความเป็นจริงฉันกำลังทุกข์ทรมานจากอุดมการณ์ทุกครั้งแล้ว Heck ฉันไม่ได้สร้างซอฟต์แวร์ที่น่าอัศจรรย์ฉันต้องทำให้สิ่งที่สืบทอดมามีขนาดใหญ่ยังคงดำเนินต่อไปและเป็นการผจญภัยของฉันทุกวัน ฉันทำได้ดีในบางสิ่งและไม่ดีในสิ่งอื่น ฉันกระตือรือร้นที่จะเรียนรู้สิ่งต่าง ๆ แต่ฉันสามารถยอมรับข้อบกพร่องหนึ่งหรือสองข้อในระบบเป็นข้อบกพร่อง: พรุ่งนี้เราจะทำการปรับปรุงใหม่ทั้งหมด แต่ก่อนอื่นมาทำในสิ่งที่ลูกค้าต้องการแล้วมีเบียร์ คำถามของฉันคือ: คุณจะจัดการกับอุดมการณ์ / อุดมการณ์อย่างไรเมื่อคุณเป็นคนที่จริงจัง? คุณจะจัดการกับลัทธินิยมนิยมได้อย่างไรเมื่อคุณเป็นคนที่มีอุดมการณ์? ฉันสนใจทั้งสองมุมมอง

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

6
ทำไมฉันถึงต้องใส่ใจ Haskell? Monad คืออะไรและทำไมฉันต้องใช้ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันไม่ได้รับสิ่งที่พวกเขาแก้ปัญหา
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.