Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

COMEFROM - оператор обратный к Goto кратко

Лекция



Привет, Вы узнаете о том , что такое comefrom, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое comefrom, come from, инверсия goto , настоятельно рекомендую прочитать все из категории Алгоритмизация и программирование. Структурное программирование. Язык C.

В компьютерном программировании , COMEFROM (или COME FROM ) является неясным поток управления структурой , используемой в некоторых языках программирования , изначально как шутка. COMEFROMявляется инверсией GOTOв том смысле, что он может принимать состояние выполнения из любой произвольной точки кода в COMEFROMоператор.

Точка в коде, в которой происходит передача состояния, обычно указывается в качестве параметра для COMEFROM. Произойдет ли передача до или после инструкции в указанной точке передачи, зависит от используемого языка. В зависимости от используемого языка несколько COMEFROMs, ссылающихся на одну и ту же отправную точку, могут быть недействительными, недетерминированными, выполняться с определенным приоритетом или даже вызывать параллельное или иным образом параллельное выполнение, как это видно в Threaded Intercal . [ необходима цитата ]

Простым примером оператора " COMEFROM x" является метка x (которая не обязательно должна физически располагаться где-либо рядом с соответствующим COMEFROM), которая действует как "люк". Когда выполнение кода достигает метки, управление передается оператору, следующему заCOMEFROM. Это также может быть условным, передача управления только в том случае, если условие удовлетворяется, аналогично GOTO в операторе IF. Основное отличие от GOTO заключается в том, что GOTO зависит только от локальной структуры кода, в то время как COMEFROM зависит от глобальной структуры - GOTO передает управление, когда достигает строки с оператором GOTO, в то время как COMEFROM требует сканирования всей программы или области действия для посмотреть, попадают ли какие-либо операторы COMEFROM в область действия строки, а затем проверить, выполнено ли условие. Эффект от этого состоит в том, чтобы в первую очередь сделать отладку (и понимание потока управления программой) чрезвычайно трудной, поскольку рядом с рассматриваемой строкой или меткой нет никаких указаний на то, что управление таинственным образом переместится в другую точку программы - нужно изучить всю программу, чтобы увидеть, ссылаются ли какие-либо операторы COMEFROM на эту строку или метку.

Перехватчики отладчика могут использоваться для реализации оператора COMEFROM, как в юмористическом модуле goto Python ; см. Ниже . Это также можно реализовать с помощью функции gcc "asm goto", которая используется параметром конфигурации ядра Linux CONFIG_JUMP_LABEL. Положение бездействия сохраняется, и оно заменяется переходом к исполняемому фрагменту, который в конце возвращается к инструкции после бездействия.

История

COMEFROM изначально был замечен в списках инструкций на ассемблере (как «CMFRM»). Об этом говорит сайт https://intellect.icu . Это было развито в статье Datamation Р. Лоуренса Кларка в 1973 году , написанной в ответ на письмо Эдсгера Дейкстры « Перейти к заявлению, признанному вредным» . В конечном итоге COMEFROM был реализован в варианте C-INTERCAL эзотерического языка программирования INTERCAL вместе с еще более неясным «вычисляемым COMEFROM». Были также предложения Fortran для 'назначенного COME FROM' и ' DONT' ключевого слова (для дополнения существующего DO цикла).

1 апреля 2004 года Ричи Хиндл опубликовал реализацию как для языка программирования Python, так GOTOи COMEFROMдля него . Несмотря на то, что он был выпущен в День дурака и не предназначен для серьезного использования, синтаксис действителен и реализация полностью работает.

Практическое использование

Примеры

Ниже приведен пример программы на гипотетическом диалекте BASIC с " COMEFROM" вместо " GOTO".

COMEFROM - оператор обратный к Goto
 

Эта программа (гипотетически) работает, запрашивая у пользователя его имя, приветствуя его тем же именем и повторяя все заново. Инструкция « REM» в строке 40 - это просто NOP (в данном случае, комментарий ) - COMEFROMоператор « » в строке 10 вызывает возврат к этой строке, когда выполнение достигает строки 40, независимо от ее содержимого.

Полностью исполняемый пример на Python с gotoустановленным модулем шутки (который использует хуки отладчика для управления выполнением программы) выглядит так:

 COMEFROM - оператор обратный к Goto

Это реализация в Ruby оператора Intercal COME FROM.

 
COMEFROM - оператор обратный к Goto

OS / 360 Fortran G

Компилятор OS / 360 Fortran G имеет функцию отладочного пакета. Его оператор «AT» похож на COMEFROM в том, что он передает поток управления блоку отладки. Точки останова в целом похожи.

  • Пример 1: значения SOLON, GFAR и EWELL проверяются такими, какими они были при завершении оператора 10. Оператор AT указывает оператор 11.
    COMEFROM - оператор обратный к Goto
    
    
    
  • Пример 2: все значения STOCK отображаются, когда встречается оператор 35.
  COMEFROM - оператор обратный к Goto
    
    
  • Пример 3: трассировка начинается с оператора 10, с оператора 20, трассировка останавливается на время выполнения цикла и возобновляется после цикла. Трассировка прекращается непосредственно перед выполнением оператора 30.
COMEFROM - оператор обратный к Goto
   

Вау!! 😲 Ты еще не читал? Это зря!

  • FX Reid , эксперт по семантике COMEFROM
  • Действия на расстоянии
  • Интеркальный

Серьезные программные хитрости, включающие идеи, напоминающие COMEFROM:

Данная статья про comefrom подтверждают значимость применения современных методик для изучения данных проблем. Надеюсь, что теперь ты понял что такое comefrom, come from, инверсия goto и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Алгоритмизация и программирование. Структурное программирование. Язык C

Из статьи мы узнали кратко, но содержательно про comefrom
создано: 2021-03-29
обновлено: 2021-03-29
132265



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Алгоритмизация и программирование. Структурное программирование. Язык C

Термины: Алгоритмизация и программирование. Структурное программирование. Язык C