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

งานที่เกี่ยวข้องกับการเขียนล่ามภาษาต่าง ๆ หรือพิธีการ

10
เขียนล่ามสำหรับจัมเปอร์ภาษาลึกลับของฉัน
ฉันคิดจัมเปอร์ภาษาลึกลับขึ้นมา หลังจากนั้นคุณจะเห็นว่าทำไม มันทำงานกับหน่วยความจำเข้าถึงโดยสุ่มด้วยไบต์เป็นเซลล์ RAM มีการทำดัชนีเป็นศูนย์และเต็มไปด้วยเลขศูนย์ในตอนแรก เมื่อพยายามเข้าถึงเซลล์ที่มีข้อผิดพลาดดัชนีเชิงลบควรจะปรากฏขึ้นและโปรแกรมสิ้นสุดลง เมื่อพยายามอ่านดัชนีที่ใหญ่กว่าครั้งสุดท้ายควรส่งคืนค่าศูนย์ เมื่อพยายามเขียนที่ดัชนีที่ใหญ่กว่าครั้งสุดท้าย RAM ควรเพิ่มเป็น 1024 และเซลล์ใหม่ที่เต็มไปด้วยศูนย์ (ในทางเทคนิคคุณสามารถเพิ่ม RAM ได้ไม่เกิน 1024 จากเหตุผลก็คือการเพิ่มประสิทธิภาพดังนั้นถ้าคุณใช้อักขระจำนวนมาก สามารถทำได้ไม่เกิน 1024) โปรแกรมยังมีตัวชี้ไปยังเซลล์ใน RAM ซึ่งเริ่มแรกเป็นศูนย์ เมื่อโปรแกรมเริ่มดำเนินการพรอมต์สำหรับสตริงอินพุตควรแสดง (หรือรับอินพุตจากอาร์กิวเมนต์บรรทัดคำสั่งก็ขึ้นอยู่กับคุณ) สตริงอินพุตไม่ควรมีอักขระ null (ศูนย์ไบต์) จากนั้นสตริงป้อนเข้าจะถูกเขียนลงใน RAM โดยเริ่มที่ดัชนีศูนย์ เมื่อโปรแกรมสิ้นสุดการดำเนินการกล่องที่มีผลลัพธ์ของโปรแกรมจะปรากฏขึ้น - เนื้อหาของ RAM จากดัชนีศูนย์ถึงศูนย์ไบต์แรกยกเว้น ตอนนี้ส่วนที่น่าสนใจที่สุดคือไวยากรณ์ โปรแกรมประกอบด้วยคำสั่ง (ตัวดำเนินการ unary-prefixes) และอาร์กิวเมนต์ คำสั่งและอาร์กิวเมนต์อาจคั่นด้วยช่องว่างหรือบรรทัดใหม่ แต่ไม่จำเป็น อย่างไรก็ตามการเว้นวรรคภายในอาร์กิวเมนต์ไม่ถูกต้องตัวอย่างเช่น# 2 = 4ถูกต้อง แต่# 2 = 4 …

6
ใช้สัญลักษณ์ Anyfix!
ในสัญลักษณ์นำหน้าตัวดำเนินการมาก่อนอาร์กิวเมนต์ดังนั้นคุณสามารถจินตนาการได้ว่าตัวดำเนินการเรียกnext()ซึ่งเรียกซ้ำ ในสัญกรณ์มัดผู้ประกอบการไประหว่างการขัดแย้งเพื่อให้คุณสามารถจินตนาการได้ว่ามันเป็นต้นไม้แยก ในรูปแบบ postfix ตัวดำเนินการมาหลังจากอาร์กิวเมนต์ดังนั้นคุณสามารถจินตนาการได้ว่าเป็นแบบสแต็ก ในสัญกรณ์ anyfix, ผู้ประกอบการสามารถไปได้ทุกที่* หากโอเปอเรเตอร์ปรากฏขึ้นและมีข้อโต้แย้งไม่เพียงพอโอเปอเรเตอร์จะรอจนกว่าจะมีอาร์กิวเมนต์เพียงพอ สำหรับความท้าทายนี้คุณจะต้องใช้ตัวประเมิน anyfix ขั้นพื้นฐานมาก (โปรดทราบว่า anyfix เป็นภาษาสันทนาที่ฉันละทิ้งที่คุณสามารถเล่นกับที่นี่หรือลองดูที่นี่ ) คุณจะต้องสนับสนุนคำสั่งต่อไปนี้: (Arity 1) ที่ซ้ำกัน เชิงลบ (Arity 2) ส่วนที่เพิ่มเข้าไป การคูณ ความเสมอภาค: ผลตอบแทนหรือ01 คุณอาจเลือกใช้สัญลักษณ์ที่ไม่ใช่ช่องว่างห้าคำสำหรับคำสั่งเหล่านี้ เพื่อจุดประสงค์ในการสาธิตฉันจะใช้สิ่ง"ที่ซ้ำกัน×เป็นการคูณและการ+บวก สำหรับตัวอักษรคุณจะต้องสนับสนุนจำนวนเต็มที่ไม่เป็นลบเท่านั้น แต่ล่ามของคุณจะต้องมีจำนวนเต็มทั้งหมด (ภายในช่วงจำนวนเต็ม (เหมาะสม) ของภาษาของคุณ) 10+5ลองมาดูตัวอย่างนี้: ที่เก็บข้อมูลควรทำตัวเป็นสแต็กไม่ใช่คิว ดังนั้นก่อนกองเริ่มต้นที่และจัดคิวเริ่มต้นรายการที่ผู้ประกอบการ[] []จากนั้นที่แท้จริงคือการประเมินผลซึ่งจะทำให้สแต็ค10 [10]ถัดไปตัวดำเนินการ+ได้รับการประเมินซึ่งต้องการอาร์กิวเมนต์สองตัว ['+']แต่มีเพียงคนเดียวคือข้อโต้แย้งในกองดังนั้นรายชื่อผู้ประกอบการที่อยู่ในคิวจะกลายเป็น จากนั้นที่แท้จริงคือการประเมินผลซึ่งจะทำให้สแต็ค5 [10, 5]ณ จุดนี้ผู้ประกอบการ'+'สามารถประเมินจึงเป็นสิ่งที่ทำให้สแต็คและคิว[15][] ผลสุดท้ายควรจะเป็น[15]สำหรับ+ 10 5, และ10 + 510 …

5
ทำ BackFlip สำหรับ ais523!
ความท้าทายนี้เป็นรางวัลสำหรับais523สำหรับการชนะหมวด " Rookie of the Year " ใน " Best of PPCG 2016 " ขอแสดงความยินดี! BackFlipเป็นภาษาการเขียนโปรแกรมลึกลับที่ทำโดยผู้ใช้ais523ผู้สร้างได้ดีกว่า 30 esolangs ที่น่าสนใจอื่น ๆรายการ BackFlip เป็นภาษา 2D เช่นBefungeหรือ> <>ที่ตัวชี้คำแนะนำลัดไปตามตารางข้อความ (โปรแกรม) เลื่อนขึ้นลงซ้ายซ้ายและขวาเปลี่ยนทิศทางขึ้นอยู่กับตัวละครที่ใช้ ในทางกลับกันกริดในโปรแกรม BackFlip จะเปลี่ยนไปในขณะที่มันกำลังเคลื่อนที่อยู่เช่นAnt ของ Langtonแลงตันของมด สำหรับความท้าทายนี้คุณอาจสมมติว่าโปรแกรม BackFlip เป็นตารางสี่เหลี่ยมของข้อความเสมอ (ทุกบรรทัดมีความยาวเท่ากัน) ขนาด 1 × 1 อย่างน้อยที่สุดมีเพียงอักขระ./\<>^Vเท่านั้น ( .ใช้สำหรับการมองเห็นมากกว่าที่ว่าง) ความหมาย BackFlip ที่เราจะใช้ที่นี่เหมือนกับสเปคดั้งเดิมสเปคเดิม ตัวชี้คำสั่ง (IP) ใน BackFlip …

4
เห็นภาพการหารยาวด้วยศิลปะ ASCII
เขียนโปรแกรมที่แสดงภาพส่วนที่ยาวด้วย ASCII art อินพุตประกอบด้วยจำนวนเต็มสองจำนวนตัวเศษและส่วนโดยใช้รูปแบบอินพุตที่คุณเลือก ตัวอย่าง: 1234 ÷ 56: 22 ---- 56|1234 112 --- 114 112 --- 2 1002012 ÷ 12: 83501 ------- 12|1002012 96 --- 42 36 -- 60 60 -- 12 12 -- 0 ÷ 35 0 - 35|0 กฎ: การใช้งานของผู้ประกอบการส่วนการเขียนโปรแกรมภาษาที่จะได้รับอนุญาต อนุญาตให้ใช้จำนวนเต็มขนาดใหญ่ได้ เพื่อความมั่นคง: หากความฉลาดเป็นศูนย์ให้พิมพ์ศูนย์เดียวที่ท้ายกระดานดำน้ำ หากส่วนที่เหลือเป็นศูนย์อย่าพิมพ์ อย่าพิมพ์เลขศูนย์นำหน้าบนตัวเลขใด ๆ ขึ้นบรรทัดใหม่มากเกินไปที่ส่วนท้ายและช่องว่างต่อท้ายไปทางขวาจะได้รับอนุญาต การแก้ปัญหาด้วยตัวละครน้อยที่สุดชนะ …

11
ตีความรหัส + p
แรงบันดาลใจจากความนิยมล่าสุดในภาษาตัวละครอีกสองภาษา ;# Intro ตามมติของชุมชนคำตอบที่ยอมรับได้ในเว็บไซต์นี้ต้องใช้ภาษาโปรแกรมอย่างน้อยที่สุด: สามารถระบุได้ว่าจำนวนธรรมชาติเป็นจำนวนเฉพาะหรือไม่ สามารถบวกสองจำนวนธรรมชาติเข้าด้วยกัน สามารถแสดงรายการ / tuple ของตัวเลขเช่นเดียวกับตัวเลขเดียว สำหรับจุดประสงค์ของการท้าทายนี้เราจะเพิกเฉย # 3 ดังนั้นภาษาที่ง่ายที่สุดที่สามารถนำมาใช้ในเว็บไซต์นี้ (ไม่สนใจ # 3) จะได้ว่าสองคำสั่งและisPrime addเพื่อความสะดวกในการตีความและการนับไบต์ให้กำหนดของisPrimeการpและการadd ดังนั้นเรามีภาษาของเรา+ +pความท้าทายของคุณคือการตีความ+pรหัสบางอย่าง พฤติกรรม +การaddเรียนการสอนใช้ตัวเลขสองตัวเพิ่มและส่งออกผลลัพธ์ pการisPrimeเรียนการสอนใช้ตัวเลขจำนวนเดียวและเอาท์พุท1ถ้ามันเป็นนายกและ0ถ้ามันไม่ได้ กฎระเบียบ คุณต้องเขียนโปรแกรม / ฟังก์ชั่นซึ่งให้สตริงของอักขระตีความสตริงนั้นเป็น+pรหัส คุณอาจสมมติว่าอินพุตที่มีรูปแบบถูกต้อง (เฉพาะ+และpตัวอักษร) อินพุตมีความยืดหยุ่น คุณอาจใช้โปรแกรมเป็นสตริงอักขระอาร์เรย์อาร์เรย์จำนวนเต็มของ codepoints ฯลฯ อินพุตสำหรับโปรแกรมที่กำลังตีความนั้นมีความยืดหยุ่นเช่นกัน คุณอาจใช้อาร์เรย์จำนวนเต็มและใช้รายการมากขึ้นในขณะที่โปรแกรมดำเนินการหรือแต่ละคำสั่ง ( +และp) อาจขออินพุตเป็นรายบุคคล คุณอาจคิดว่าจะมีอินพุตเพียงพอสำหรับทุกคำสั่ง อินพุตรับประกันว่าจะประกอบด้วยตัวเลขระหว่าง 0 ถึง 200 (แต่อัลกอริทึมของคุณควรทำงานในเชิงทฤษฎีสำหรับอินพุตจำนวนเต็มบวกใด ๆ ) ผลผลิตยังมีความยืดหยุ่น คุณสามารถพิมพ์ผลลัพธ์ส่งคืนเป็นรายการส่งคืนสตริงที่มีผลลัพธ์ทั้งหมด ฯลฯ …

8
ทัวริงเครื่องจำลอง
เขียนโปรแกรมจำลองเครื่องทัวริง เพื่อความง่ายเราสามารถสมมติสถานะเป็นจำนวนเต็มสัญลักษณ์เป็นอักขระถ่านสัญลักษณ์ว่างเท่ากับช่องว่าง 5-tuple ในรูปแบบของสถานะปัจจุบัน, สัญลักษณ์อินพุต, สถานะถัดไป, สัญลักษณ์เอาต์พุต, ทิศทาง (ซ้ายหรือขวา) ลำดับไม่จำเป็น แต่ระบุว่าถ้าคุณสลับ เครื่องต้องหยุดเมื่อถึงสถานะที่ไม่รู้จักไม่อนุญาตให้มีเงื่อนไขหยุดชะงักอื่น ๆ เทปไม่มีที่สิ้นสุดในทั้งสองทิศทางและคุณสามารถอ่านอักขระว่างได้เสมอ อินพุต: เทปเริ่มต้นสถานะเริ่มต้นและโปรแกรม คุณมีอิสระที่จะอ่านข้อมูลจากที่ใดก็ได้ในรูปแบบที่คุณต้องการ เอาท์พุท: เทปหลังจากการดำเนินการของโปรแกรม ต้องมี: โปรแกรมตัวอย่างที่ทำงานบนโปรแกรมจำลองการทำงานของคุณ นี่คือโค๊ดโคฟเพื่อให้รหัสที่สั้นที่สุดชนะ ฉันจะโพสต์การใช้งานและโปรแกรมตัวอย่างในอีกไม่กี่ชั่วโมงข้างหน้า

12
ติดตั้ง glob Matcher
ใช้ฟังก์ชั่นของรูปแบบและสตริงที่จะจับคู่คืนค่าจริงถ้ารูปแบบตรงกับสตริง WHOLE มิฉะนั้นเป็นเท็จ ไวยากรณ์รูปแบบ glob ของเราคือ: ? ตรงกับตัวละครตัวใดตัวหนึ่ง + ตรงกับตัวละครหนึ่งตัวหรือมากกว่า * ตรงกับอักขระศูนย์หรือมากกว่า \ หนี กฎ: ไม่มี eval ไม่แปลงเป็นนิพจน์ทั่วไปไม่เรียกฟังก์ชัน glob ระบบ ไม่จำเป็นต้องใช้ I / O คุณสามารถเขียนฟังก์ชั่นได้ ชนะสั้นที่สุด ตัวอย่าง: glob('abc', 'abc') => true glob('abc', 'abcdef') => false IMPORTANT! glob('a??', 'aww') => true glob('a*b', 'ab') => true glob('a*b', 'agwijgwbgioeb') => true glob('a*?', 'a') …

4
ตีความ StackyMath!
ถึงเวลาที่คุณจะใช้ภาษาสแต็กใหม่ของฉัน! มันเรียกว่า StackyMath นี่จะเป็นภาษาแบบสแต็กที่มีการดำเนินการ 8 รายการบนสแต็กและวิธีเพิ่มหมายเลขในสแต็ก รายการของการดำเนินงาน: /: แผนก. ดำเนินการกับตัวเลข 2 อันดับแรกของสแต็ก ผลักผลลัพธ์กลับคืนบนสแต็ก *: การคูณ ดำเนินการกับตัวเลข 2 อันดับแรกของสแต็ก ผลักผลลัพธ์กลับคืนบนสแต็ก -: การลบ ดำเนินการกับตัวเลข 2 อันดับแรกของสแต็ก ผลักผลลัพธ์กลับคืนบนสแต็ก +: ส่วนที่เพิ่มเข้าไป. ดำเนินการกับตัวเลข 2 อันดับแรกของสแต็ก ผลักผลลัพธ์กลับคืนบนสแต็ก ^: การยกกำลัง ดำเนินการกับตัวเลข 2 อันดับแรกของสแต็ก ผลักผลลัพธ์กลับคืนบนสแต็ก %: Modulo ดำเนินการกับตัวเลข 2 อันดับแรกของสแต็ก ผลักผลลัพธ์กลับคืนบนสแต็ก !: แฟคทอเรียล ดำเนินการกับหมายเลขบนสุดของสแต็ก ผลักผลลัพธ์กลับคืนบนสแต็ก D: ทำซ้ำหมายเลขบนสุดของสแต็ก การดำเนินการที่กำหนดไว้ในรหัสหลอก: …

4
เกือบจะกระเพื่อม!
ท้าทาย ความท้าทายของคุณคือการออกแบบสำหรับล่ามภาษากระเพื่อมเหมือนซึ่งจะไปจากที่นี่มาได้รับการประกาศเกียรติคุณ: GLisp รหัสโปรแกรมสำหรับGLispจะประกอบด้วยจำนวนของนิพจน์ที่ซ้อนกันที่แสดงโดยวงเล็บในรูปแบบต่อไปนี้โดยพลการ: (func arg1 arg2 ...) โปรดทราบว่าล่ามจะต้องอนุญาตสำหรับอักขระช่องว่างภายนอกก่อนและหลังวงเล็บฟังก์ชั่นและข้อโต้แย้ง ประเภท คุณจะใช้งานสี่ประเภท, จำนวนเต็ม, รายการ, บูลีนและฟังก์ชั่น ค่าจำนวนเต็มและบูลีนสามารถแทรกอย่างชัดเจนในซอร์สโค้ดด้วยไวยากรณ์ของตัวเอง ล่ามของคุณต้องสมมติว่าการใช้อักขระตัวเลขหมายถึงจำนวนเต็ม (คุณไม่จำเป็นต้องใช้ไวยากรณ์เพื่อแทรกจำนวนเต็มลบอย่างชัดเจน) ล่ามของคุณจะต้องถือว่าtrueและfalseได้รับการกำหนดค่าบูลีน ฟังก์ชั่นไม่สามารถกำหนดได้อย่างชัดเจนโดยผู้ใช้และจะส่งกลับค่าเดียวเสมอ (รายการที่มีความยาวนับเป็นค่าเดียว) ฟังก์ชั่น ฟังก์ชั่นต่อไปนี้จะต้องได้รับการดำเนินการและอยู่ในรูปแบบฟังก์ชั่น , arity หาก Arity nดำเนินการต่อโดยเครื่องหมายบวกแสดงว่าnมีการโต้แย้งหรือมากกว่า คุณอาจสมมติว่าอาร์กิวเมนต์ทั้งหมดที่กำหนดให้กับฟังก์ชันนั้นเป็นประเภทเดียวกันเว้นแต่จะระบุไว้เป็นอย่างอื่น คุณอาจคิดว่าหากไม่มีการระบุพฤติกรรมสำหรับประเภทใบรับรองคุณอาจสมมติว่าไม่มีข้อโต้แย้งของฟังก์ชันนั้น ๆ ที่จะเป็นประเภทนั้น อาร์กิวเมนต์จะถูกอ้างถึงในแผนภาพต่อไปนี้: (func argument1 argument2 ... argumentn) + , 2+ หากอาร์กิวเมนต์ทั้งหมดเป็นประเภทจำนวนเต็มคุณต้องส่งคืนผลรวมของข้อโต้แย้ง ถ้าขัดแย้งทั้งหมดเป็นประเภทรายการคุณต้องกลับมาเรียงต่อกันของการขัดแย้งในการเรียงลำดับ ( arg1+arg2+ ...) หากอาร์กิวเมนต์ทั้งหมดเป็นประเภทBooleanคุณต้องส่งคืนตรรกะทั้งหมดของลำดับอาร์กิวเมนต์ (+ 1 2 3 …

6
จำลองระบบ Cyclic Tag
ระบบแท็กวงกลมเป็นขนาดเล็กรูปแบบการคำนวณทัวริงสมบูรณ์ประกอบด้วยตัวอักษรสองสัญลักษณ์ (ฉันจะใช้{0,1}) ซึ่งเป็นที่แน่นอนรายการวงจรว่างของโปรดักชั่นที่ประกอบด้วยทั้งสองสัญลักษณ์และมากมายคำซึ่งประกอบด้วย สัญลักษณ์ทั้งสองนั้น ในแต่ละขั้นตอน: องค์ประกอบแรกในคำจะถูกลบออก ถ้าเป็น0ปัจจุบันการผลิตถูกข้ามไป ถ้ามันเป็น1ปัจจุบันการผลิตถูกผนวกเข้ากับท้ายของคำ การผลิตต่อไปจะเปิดใช้งาน หากนี่เป็นการผลิตครั้งสุดท้ายให้กลับไปผลิตรายการแรก ระบบหยุดทำงานเมื่อคำว่างเปล่า ตัวอย่าง (จาก Wikipedia): Productions: (010, 000, 1111) Initial word: 11001 Generation Production Word (before) Word (after) 0 010 11001 → 1001010 1 000 1001010 → 001010000 2 1111 001010000 → 01010000 3 010 01010000 → 1010000 4 000 1010000 …

5
จำลองหุ่นยนต์เซลลูล่าร์ 1D ใด ๆ
ความท้าทาย คุณต้องเขียนโปรแกรมที่สมบูรณ์ซึ่งใช้ตัวเลขเจ็ดตัวจาก STDIN และพิมพ์ประวัติสองมิติของหุ่นยนต์อัตโนมัติ (CA) ไปยัง STDOUT นี่คือรหัสกอล์ฟ การจัดรูปแบบ อินพุตอินพุตจะเป็นเจ็ดจำนวนเต็ม / สตริงคั่นด้วยเครื่องหมายจุลภาค หมายเลขแรกคือจำนวนของกฎตามรหัส Wolfram (ชื่อมาตรฐานสำหรับแต่ละกฎ) ประการที่สองคือการกำหนดค่าเริ่มต้นเริ่มต้น ที่สามและสี่อธิบายรูปแบบและจำนวนครั้งที่ควรผนวกเข้ากับด้านซ้ายของการกำหนดค่าเริ่มต้น เป็นช่องว่างภายใน ที่ห้าและหกทำเช่นเดียวกันสำหรับด้านขวา ตัวเลขสุดท้ายคือจำนวนรุ่นที่รันการจำลอง 90,11,0,4,0,4,5ดังนั้นตัวอย่างของการป้อนข้อมูลเป็น นี้ควรบอกโปรแกรมที่คุณกำลังเรียกใช้กฎ 90 นอกจากนี้ยังควรบอกโปรแกรมที่คุณต้องการกำหนดค่าเริ่มต้นที่จะ11มีสตริง0ผนวก 4 0000110000ครั้งเพื่อให้ปลายทั้งสองเพื่อให้รูปแบบเริ่มต้นที่เกิดขึ้นจริง นอกจากนี้ยังบอกให้โปรแกรมของคุณรันการจำลองนี้เป็นเวลา 5 ชั่วอายุ เอาท์พุทโปรแกรมของคุณควรพิมพ์อาร์เรย์ทั้งหมดของเซลล์แต่ละรุ่น (คั่นด้วยบรรทัดใหม่) เพื่อให้เอาต์พุตเป็นไดอะแกรมสเปซ - เวลาของ CA สำหรับแต่ละรุ่นสถานะของแต่ละเซลล์จะถูกกำหนดโดยสถานะและสถานะของเซลล์ไปทางซ้ายและขวาทันทีตามกฎที่ให้ไว้เป็นอินพุต การจำลองควรล้อมรอบขอบ สิ่งแรกที่พิมพ์ควรเป็นอาร์เรย์เริ่มต้นเป็น gen 0 อินพุต90,11,0,4,0,4,5ควรส่งผลให้ผลลัพธ์ต่อไปนี้ตรงตามที่เป็นไปได้ 0000110000 0001111000 0011001100 0111111110 1100000011 0110000110 โปรดสังเกตว่าสถานะเริ่มต้นจะไม่รวมอยู่ในห้าชั่วอายุคน สังเกตว่าการจำลองล้อมรอบขอบ ตัวอย่างเพิ่มเติม …

26
ล่ามกอล์ฟที่เรียบง่าย
ท้าทาย: งานของคุณคือการสร้างล่ามอย่างง่ายสำหรับภาษากอล์ฟที่ง่าย การป้อนข้อมูล: อินพุตจะอยู่ในรูปแบบของสตริงคั่นด้วยช่องว่าง คุณสามารถแทนที่การแยกพื้นที่ด้วยสิ่งที่คุณต้องการ เอาท์พุท: เอาต์พุตผลลัพธ์ (ตัวเลขหรือสตริง) ที่ได้รับหลังจากดำเนินการทั้งหมด หากมีมากกว่าหนึ่งเอาต์พุตเข้าร่วมร่วมกันเพื่อให้ผลลัพธ์เดียว (ไม่มีตัวคั่น) ค่าเริ่มต้นของตัวแปรนั้นเป็นศูนย์เสมอ เช่น: มันเริ่มต้นที่0 ไวยากรณ์ภาษา: ภาษามีตัวดำเนินการดังต่อไปนี้: inc ---> add one to variable dec ---> remove one from variable mult ---> multiply variable by 2 half ---> divide the variable by 2 Pri ---> print the variable to console (or whatever …

13
ผลิตภัณฑ์ Fibonacci
คุณสามารถแยกตัวเลขที่มากกว่า 0 เป็นผลรวมที่ไม่ซ้ำกันของตัวเลขฟีโบนักชีบวก ในคำถามนี้เราทำได้โดยการลบจำนวนฟีโบนัชชีบวกที่ใหญ่ที่สุดซ้ำไปซ้ำมา เช่น: 1 = 1 2 = 2 3 = 3 4 = 3 + 1 12 = 8 + 3 + 1 13 = 13 100 = 89 + 8 + 3 ตอนนี้ฉันเรียกผลิตภัณฑ์ Fibonacciว่าเป็นรายการเดียวกันกับข้างบน แต่ด้วยการเพิ่มถูกแทนที่ด้วยการคูณ ตัวอย่างเช่นf(100) = 89 * 8 * 3 = 2136. เขียนโปรแกรมหรือฟังก์ชั่นที่ให้จำนวนเต็มบวกnส่งคืนผลคูณของฟีโบนักชีของตัวเลขนั้น Testcases: …
13 code-golf  math  sequence  fibonacci  code-golf  word  code-golf  cipher  code-golf  string  math  subsequence  code-golf  regular-expression  code-golf  brainfuck  assembly  machine-code  x86-family  code-golf  math  factorial  code-golf  math  geometry  code-golf  math  arithmetic  array-manipulation  math  number  optimization  stack  metagolf  code-golf  tips  assembly  code-golf  tips  lisp  code-golf  number-theory  path-finding  code-golf  number  sequence  generation  code-golf  math  geometry  code-golf  grid  permutations  code-golf  code-golf  graphical-output  geometry  fractal  knot-theory  code-golf  math  arithmetic  code-golf  interpreter  balanced-string  stack  brain-flak  code-golf  math  set-theory  code-golf  math  array-manipulation  code-golf  code-golf  string  natural-language  code-golf  code-golf  math  linear-algebra  matrix  code-golf  string  encode 

1
แก้ไขตัวแปรแมโคร SAS
ภาษาการเขียนโปรแกรม SASเป็น clunky โบราณภาษาย้อนหลังไปถึง 1966 ที่ยังคงใช้อยู่ในปัจจุบัน คอมไพเลอร์ดั้งเดิมเขียนด้วยPL / Iและแน่นอนว่าไวยากรณ์ส่วนใหญ่มาจาก PL / I SAS ยังมีภาษามาโครตัวประมวลผลล่วงหน้าซึ่งมาจากPL / Iเช่นกัน ในความท้าทายนี้คุณจะตีความองค์ประกอบง่ายๆของภาษาแมโคร SAS ในภาษาแมโคร SAS ตัวแปรแมโครจะถูกกำหนดโดยใช้คำหลักและการพิมพ์เข้าสู่ระบบจะทำด้วย%let %putงบสิ้นสุดด้วยเครื่องหมายอัฒภาค นี่คือตัวอย่างบางส่วน: %let x = 5; %let cool_beans =Cool beans; %let what123=46.lel"{)-++; ชื่อตัวแปรมาโครไม่คำนึงถึงขนาดตัวพิมพ์และตรงกับนิพจน์ทั่วไป/[a-z_][a-z0-9_]*/iเสมอ สำหรับจุดประสงค์ของการท้าทายนี้เราจะพูดดังนี้: ตัวแปรมาโครเท่านั้นที่สามารถเก็บค่าประกอบด้วยทั้งตัวอักขระ ASCII ยกเว้น ; , &และ% จะไม่มีช่องว่างนำหน้าหรือต่อท้ายในค่า ค่าจะไม่ยาวเกิน 255 อักขระ ค่าอาจว่างเปล่า วงเล็บและเครื่องหมายคำพูดในค่าอาจไม่ตรงกัน สามารถมีจำนวนช่องว่างใด ๆ ก่อนและหลัง=ใน%letคำสั่งและควรเว้นช่องว่างนี้ …

3
Golf a Purple Interpreter
Golf a Purple Interpreter Purpleเป็น esolang ที่ออกแบบมาโดยมีวัตถุประสงค์หลักสองประการ: เพื่อเป็นการลดAubergineเนื่องจากมีเพียงภาษาตัวเองไม่เพียงพอในการปรับเปลี่ยนคำสั่งเดียว เพื่อยอมรับความเป็นไปได้ของล่ามกอล์ฟขนาดเล็กที่น่ากลัว การผ่านครั้งแรกของฉันที่ล่าม Python 2 ที่มีคุณสมบัติครบถ้วนสมเหตุสมผลมีเพียง 702 ไบต์และฉันแน่ใจว่านักกอล์ฟที่มีประสบการณ์มากขึ้นสามารถโกนหนวดได้เล็กน้อย เป้าหมายของคุณคือการเขียนล่ามสำหรับภาษานี้ ข้อมูลเกี่ยวกับสีม่วง: โปรแกรมสีม่วงคือลำดับของอักขระที่วางในอาร์เรย์หน่วยความจำที่ไม่มีที่สิ้นสุดและแอดเดรสที่อักขระตัวแรกของโปรแกรมจะถูกวางที่แอดเดรสศูนย์ ส่วนที่เหลือของอาร์เรย์ (ทั้งก่อนและหลังที่เก็บโปรแกรมสีม่วง) จะเริ่มต้นเป็นศูนย์ Purple มี register สามตัวที่เรียกว่าaและbและiซึ่งแต่ละตัวสามารถเก็บค่าจำนวนเต็มที่ลงนามแล้วและถูกกำหนดค่าเริ่มต้นเป็นศูนย์ ฉันยังเป็นตัวชี้คำสั่งและชี้ไปที่คำสั่งสีม่วงที่กำลังดำเนินการอยู่ในปัจจุบัน แต่ละรอบล่ามจะอ่านลำดับของอักขระสามตัวที่ต่อเนื่องกันเริ่มต้นจากตำแหน่งหน่วยความจำที่ระบุโดยตัวชี้คำสั่งและพยายามเรียกใช้ลำดับนี้ตามคำสั่งสีม่วง หลังจากนั้นตัวชี้คำสั่งจะเพิ่มขึ้น 3 เสมอ วากยสัมพันธ์คำสั่งสีม่วงประกอบด้วยอักขระสามตัว (หรือการเข้ารหัส) ในหนึ่งแถวเช่น " xyz " อักขระตัวแรกxสามารถเป็นอย่างใดอย่างหนึ่งต่อไปนี้: abABio สัญลักษณ์เหล่านี้มีความหมายดังต่อไปนี้: a - Place the result in register a. b - Place …

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