กลับไปหน้าบทความ

อ่าน 4 นาที

มาจาก

ในการเขียนโปรแกรมคอมพิวเตอร์ คำ สั่ง COMEFROMเป็นคำสั่งควบคุมการไหลของ โปรแกรม ที่ทำให้การควบคุมกระโดดไปยังคำสั่งถัดไปเมื่อการควบคุมไปถึงจุดที่ระบุโดยอาร์กิวเมนต์ COMEFROM

มาจาก

ในการเขียนโปรแกรมคอมพิวเตอร์ คำ สั่ง COMEFROMเป็นคำสั่งควบคุมการไหลของ โปรแกรม ที่ทำให้การควบคุมกระโดดไปยังคำสั่งถัดไปเมื่อการควบคุมไปถึงจุดที่ระบุโดยอาร์กิวเมนต์ COMEFROM คำสั่งนี้มีจุดประสงค์เพื่อตรงข้ามกับgotoและถือว่าเป็นเรื่องตลกมากกว่าวิทยาศาสตร์คอมพิวเตอร์ ที่จริงจัง บ่อยครั้งที่จุดกระโดดที่ระบุจะถูกระบุเป็นป้ายกำกับตัวอย่างเช่นระบุว่าเมื่อการควบคุมไปถึงป้ายกำกับการควบคุมจะดำเนินการต่อที่คำสั่งถัดจาก COMEFROM COMEFROM xx

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

ความหมายของคำสั่ง COMEFROM แตกต่างกันไปตามภาษาโปรแกรมในบางภาษา การกระโดดจะเกิดขึ้นก่อนที่คำสั่ง ณ จุดที่ระบุจะถูกดำเนินการ และในบางภาษา การกระโดดจะเกิดขึ้นหลังจากนั้น ขึ้นอยู่กับภาษา คำสั่ง COMEFROM หลายคำสั่งที่อ้างอิงถึงจุดเดียวกันอาจไม่ถูกต้อง ไม่แน่นอน ถูกดำเนินการตามลำดับใดลำดับหนึ่ง หรือทำให้เกิด การประมวลผล แบบขนาน หรือแบบ พร้อมกันอื่นๆดังที่เห็นในThreaded Intercal

COMEFROM ปรากฏครั้งแรกในรายการ คำสั่ง ภาษาแอสเซมบลี แบบตลก (ในชื่อ 'CMFRM') มีการอธิบายเพิ่มเติมใน บทความ Datamationโดย R. Lawrence Clark ในปี 1973 [ 1 ]ซึ่งเขียนขึ้นเพื่อตอบจดหมายของEdsger Dijkstra เรื่อง Go To Statement Considered Harmfulในที่สุด COMEFROM ก็ถูกนำไปใช้ใน C-INTERCAL ซึ่งเป็นรูปแบบหนึ่งของภาษาโปรแกรมINTERCAL ที่เข้าใจยาก พร้อมกับ 'computed COMEFROM' ที่เข้าใจยากยิ่งกว่า นอกจากนี้ยังมีข้อเสนอFortran [ 2 ]สำหรับ 'assigned COME FROM' และคำสั่ง 'DONT' (เพื่อเสริมลูป 'DO' ที่มีอยู่)

ตัวอย่าง

พื้นฐาน

โค้ดต่อไปนี้เป็นโค้ดสำหรับภาษาBASICCOMEFROM สมมุติที่มี มันจะถามชื่อ ทักทายด้วยชื่อนั้น และทำซ้ำ บรรทัดที่ 40 คือจุดกระโดดที่ระบุโดย COMEFROM ดังนั้นเมื่อการควบคุมมาถึงบรรทัดที่ 40 มันจะกระโดดไปยังบรรทัดที่ 10

10 COMEFROM 40 20 INPUT "WHAT IS YOUR NAME?" ; A$ 30 PRINT "HELLO, " ; A$ 40 REM

ไพธอน

เมื่อวันที่ 1 เมษายน พ.ศ. 2547 Richie Hindle ได้เผยแพร่การใช้งาน COMEFROM สำหรับPythonที่ใช้ฮุกดีบักเกอร์ แม้ว่าจะถูกเผยแพร่ในวันเอพริลฟูลส์และไม่ได้มีเจตนาเพื่อการใช้งานอย่างจริงจัง แต่ไวยากรณ์ก็ถูกต้องและการใช้งานก็ทำงานได้อย่างสมบูรณ์[ 3 ]

โค้ดด้านล่างนี้ ซึ่งสามารถใช้งานได้จริง ใช้การใช้งาน Python นี้

จากgoto import comefrom , label comefrom . repeatชื่อ: str = raw_input ( "ชื่อของคุณคืออะไร?" ) ถ้าชื่อ: พิมพ์( f "สวัสดี, { ชื่อ} " ) label . repeat พิมพ์( "ลาก่อน!" )

ทับทิม

นี่คือการนำคำสั่ง Intercal COME FROM มา ใช้ใน ภาษา Ruby

$come_from_labels = {}def label ( l ) if $come_from_labels [ l ] $come_from_labels [ l ]. call end enddef come_from ( l ) callcc do | block | $come_from_labels [ l ] = block end end

OS/360 ฟอร์ทราน จี

ในแพ็กเก็ตดีบักคอมไพเลอร์ OS/360 Fortran G ATคำสั่งนี้ทำหน้าที่เหมือน COMEFROM ในแง่ที่ว่ามันส่งมอบการควบคุมการไหลไปยังบล็อกดีบัก ซึ่งคล้ายกับเบรกพอยต์[ 4 ]

ในโค้ดต่อไปนี้ ค่าของSOLON, GFAR, และEWELLจะถูกตรวจสอบตามที่ปรากฏเมื่อคำสั่งที่ 10 เสร็จสิ้นATคำสั่งนี้ชี้ไปยังคำสั่งที่ 11

INTEGER SOLON , GFAR , EWELL . . . 10 SOLON = GFAR * SQRT ( FLOAT ( EWELL )) 11 IF ( SOLON ) 40 , 50 , 60 . . . DEBUG UNIT ( 3 ) AT 11 DISPLAY GFAR , SOLON , EWELL END

ในโค้ดต่อไปนี้ ค่าของSTOCKจะถูกแสดงเมื่อพบคำสั่งที่ 35

ขนาดสต็อก( 1000 ) , ออก( 1000 ) ... ทำ30 I = 1 , 1000 25 สต็อก( I ) = สต็อก( I ) - ออก( I ) 30 ดำเนินการต่อ35 A = B + C ... หน่วยดีบัก( 3 ) ที่35 แสดงต็อกสิ้นสุด

ในโค้ดต่อไปนี้ การติดตามการทำงานเริ่มต้นที่คำสั่งที่ 10 ที่คำสั่งที่ 20 การติดตามจะหยุดลงในขณะที่ลูปกำลังทำงาน และจะกลับมาทำงานต่อหลังจากลูปสิ้นสุดลง การติดตามจะหยุดลงก่อนที่คำสั่งที่ 30 จะถูกดำเนินการ

10 A = 1.5 12 L = 1 15 B = A + 1.5 20 DO 22 I = 1 , 5 . . . 22 CONTINUE 25 C = B + 3.16 30 D = C / 2 STOP . . . DEBUG UNIT ( 3 ), TRACE C DEBUG PACKET NUMBER 1 AT 10 TRACE ON C DEBUG PACKET NUMBER 2 AT 20 TRACE OFF DO 35 I = 1 , 3 . . . 35 CONTINUE TRACE ON C DEBUG PACKET NUMBER 3 AT 30 TRACE OFF END

ดูเพิ่มเติม

  • การกระทำจากระยะไกล  – รูปแบบที่ไม่พึงประสงค์
  • ส่วนต่อ  – การแสดงสถานะการควบคุมของโปรแกรมคอมพิวเตอร์
  • ทริกเกอร์ฐานข้อมูล  – โค้ดฐานข้อมูลที่จะทำงานหลังจากเกิดเหตุการณ์บางอย่างกับตาราง
  • การเขียนโปรแกรมแบบขับเคลื่อนด้วยเหตุการณ์  – รูปแบบการเขียนโปรแกรมคอมพิวเตอร์
  • FX Reid – ผู้เชี่ยวชาญด้านความหมายของ COMEFROM [ 5 ]
  • ฟังก์ชัน Goto/From สำหรับการกำหนดเส้นทางสัญญาณในMATLAB Simulink
  • จุดตัด
  • รูปแบบ Observer  – รูปแบบการออกแบบซอฟต์แวร์ที่อิงตามวัตถุที่อัปเดตตามเหตุการณ์ โดยมีรายการของวัตถุที่เกี่ยวข้อง
  • เว็บฮุค  – วิธีการพัฒนาเว็บไซต์
  • หน้าข้อมูล COMEFROM
  • บทความ Datamation
  • รายการคำแนะนำการประกอบ Joke รวมถึง CMFRM
  • มาจากการสนับสนุนสำหรับ Perl
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=COMEFROM&oldid=1311222329 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ มาจาก

ในการเขียนโปรแกรมคอมพิวเตอร์ คำ สั่ง COMEFROMเป็นคำสั่งควบคุมการไหลของ โปรแกรม ที่ทำให้การควบคุมกระโดดไปยังคำสั่งถัดไปเมื่อการควบคุมไปถึงจุดที่ระบุโดยอาร์กิวเมนต์ COMEFROM

พื้นฐาน

โค้ดต่อไปนี้เป็นโค้ดสำหรับภาษา BASIC COMEFROM สมมุติที่มี มันจะถามชื่อ ทักทายด้วยชื่อนั้น และทำซ้ำ บรรทัดที่ 40 คือจุดกระโดดที่ระบุโดย COMEFROM ดังนั้นเมื่อการควบคุมมาถึงบรรทัดที่ 40 มันจะกระโดดไปยังบรรทัดที่ 10

ไพธอน

เมื่อวันที่ 1 เมษายน พ.ศ. 2547 Richie Hindle ได้เผยแพร่การใช้งาน COMEFROM สำหรับ Python ที่ใช้ฮุกดีบักเกอร์ แม้ว่าจะถูกเผยแพร่ใน วันเอพริลฟูลส์ และไม่ได้มีเจตนาเพื่อการใช้งานอย่างจริงจัง แต่ไวยากรณ์ก็ถูกต้องและการใช้งานก็ทำงานได้อย่างสมบูรณ์ [ 3 ]

ทับทิม

นี่คือการนำคำสั่ง Intercal COME FROM มา ใช้ใน ภาษา Ruby