Jump to content

FLOW (язык программирования)

ПОТОК
Парадигма Неструктурированный , императивный
Разработано Джефф Раскин
Впервые появился 1970 год ; 54 года назад ( 1970 )
Под влиянием
БАЗОВЫЙ

FLOW образовательный язык программирования, разработанный Джефом Раскином в 1970 году и реализованный на нескольких миникомпьютерах в начале 1970-х годов. Цель языка — облегчить изучение алгоритмов в высокоинтерактивной среде. В целом язык очень похож по синтаксису и структуре на язык программирования BASIC , но в него внесен ряд изменений, упрощающих ввод кода. Наиболее примечательной среди них была концепция «улучшения типизации», при которой короткие строки, часто состоящие из одного символа, расширялись языком до полного «неусиленного» исходного кода. Современные интегрированные среды разработки ориентированные на код, и текстовые редакторы, часто включают в себя аналогичную функцию, которая сейчас обычно называется автозаполнением . Начинающий программист сначала должен создать блок-схему решения проблемы. Поскольку все проблемы включали слова (а не математические задачи), решение было интуитивно понятным. Блок-схема будет переведена на язык потокового программирования с использованием нисходящего механического метода.

В 1970 году на факультете английского языка Канзасского университета состоялась встреча, посвященная использованию компьютеров в гуманитарных науках. За конференцией последовал тренинг, который проходил с 13 июня по 18 августа, на котором Джеф Раскин был одним из нескольких учителей, участвовавших в обучении других учителей базовым компьютерным навыкам. В этот период Раскин разработал концепцию языка FLOW. [ 1 ]

Ключевым элементом дизайна FLOW была попытка избежать синтаксических ошибок за счет максимально возможной автоматизации ввода языка. Например, если кто-то хочет ввести оператор PRINT "10"пользователю просто нужно было ввести P10 и интерактивный редактор расширял его по мере ввода. Если пользователь ввел недопустимую команду, она мигала на терминале, а затем автоматически удалялась, так что пользователю «не стало хуже, если он нажал неправильную клавишу». Они назвали эту концепцию «улучшением набора текста» и отметили, что она имеет дополнительное преимущество, заключающееся в устранении препятствий для медленно печатающих людей или людей с физическими проблемами при использовании терминала. [ 2 ]

Льюис и Норман позже назвали эту концепцию «затычкой», поскольку она блокировала ввод пользователя до тех пор, пока он не напечатал что-то полезное. Они проиллюстрировали это, рассказав об одной из любимых демонстраций FLOW, которую Раскин проводил, когда он закрывал глаза и нажимал случайные клавиши на терминале, создавая синтаксически правильную, хотя и бессмысленную программу. [ 3 ]

Еще одним аспектом подхода системы FLOW к взаимодействию с пользователем был ее отладчик . Это включало команду WALK, аналог BASIC RUN это задерживается после выполнения каждого оператора аналогично современным одношаговым системам. [ 4 ] [ 3 ]

По возвращении в Калифорнийский университет в Сан-Диего (UCSD) Раскин смог организовать финансирование от UCSD и соответствующие средства Национального научного фонда для приобретения оборудования для разработки системы FLOW на общую сумму 76 000 долларов США (что эквивалентно 596 278 долларам США в 2023 году). . [ 5 ] Первоначальная система состояла из трех Data General Nova миникомпьютеров с памятью по 12 тыс. слов, нескольких терминалов VST 1200, графического терминала Tektronix 4002 и плоттера HP 7200. В сентябре 1973 года процессоры были обновлены до 32 тыс. слов памяти. [ 6 ]

Первая версия FLOW была запрограммирована Джонатаном «Джоном» Коллинзом на ФОРТРАНЕ для использования в летнем институте. Чтобы облегчить быстрое внедрение (1 неделя), Джонатан ограничил ввод первым символом команды, а компьютер предоставил остальные буквы команды. Таким образом, было изобретено усиление типизации. UCSD портировали Flow Позже два аспиранта на язык ассемблера Nova . Более поздние порты включали MICRO. Ассемблер 800, Бейсик и Алгол . [ 6 ]

Описание

[ редактировать ]

Общая организация

[ редактировать ]

Как и BASIC, FLOW использует номера строк как для облегчения редактирования, так и для меток операторов. В отличие от большинства BASICов, FLOW автоматически нумерует программы, начиная со строки 10 и увеличивая ее на 10 при вводе новых строк. Номера строк имеют трехзначный формат, поэтому строка 10 отображается как 010. Пользователи также могут вводить номера строк вручную и перенумеровывать всю программу с помощью NUMBER команда. [ 5 ]

В отличие от Бейсика, RUN команде можно дать указание остановиться после достижения заданной строки, например, RUN FROM FIRST LINE TO 200. Чтобы ввести эту команду, пользователь просто набирает RF200, а остальные «усиливаются» в командной строке. [ 5 ]

Синтаксис и возможности

[ редактировать ]

Наиболее очевидное различие между FLOW и BASIC заключалось в том, что FLOW имеет только одну переменную: ITи не имеет математических операторов. В языке всего семь операторов, каждый из которых применяет базовую логику или манипулирование строками. также не существует Эквивалента цикла for , цикл полностью обрабатывается через IF тесты и JUMP TO заявления. [ 7 ]

В этом языке нет прямого взаимодействия с пользователем, как в BASIC. INPUTвместо этого данные определяются в FLOW, аналоге BASIC. DATA заявление, TEXT. TEXT IS определяет строку, разделенную кавычками, например TEXT IS "HELLO,WORLD", который затем считывается посимвольно с помощью GET IT. IT — это метапеременная, которая содержит последний прочитанный символ и затем может использоваться в других операторах, например PRINT IT. IT становится пустым – не пустой строкой, а одним пробелом – когда TEXT читается полностью. [ 5 ]

Программы могут содержать несколько TEXT утверждения, но в отличие от BASIC DATA где все строки считаются одним непрерывным блоком данных, только одна TEXT Оператор активен в тот момент, когда с ним сталкивается интерпретатор. Другими словами, если есть два TEXT операторов в программе, они не рассматриваются как один более длинный оператор, как в случае с DATA, IT вернет пустое значение, когда оно достигнет конца активного TEXT оператор и не будет возвращать больше данных до следующего TEXT оператор встречается в коде. [ 5 ]

Заявления

[ редактировать ]

От: [ 8 ]

Программные заявления

[ редактировать ]
COMMENT - эквивалент BASIC REM
PRINT - как и в BASIC, принимает буквальные строки в двойных кавычках, IT переменная, или ON A NEW LINE чтобы напечатать возврат каретки.
TEXT IS - похоже на DATA в BASIC, но используется только для строк
GET IT - читает следующий символ из текущего оператора TEXT
JUMP TO - эквивалентно GOTO, всегда расширяет целевые строки до трех цифр
IF IT IS ... JUMP TO - эквивалентно IF...THEN но может выполнять только проверки на равенство IT
STOP - используется для завершения программы, но не обязательно

Интерактивные команды

[ редактировать ]
RUN - как в BASIC, но может определять как начальную, так и конечную строки и использовать металинии. FIRST LINE и END
WALK - медленно выполняет программу
DISPLAY - эквивалентно LIST. Чтобы перечислить всю программу, используется DISPLAY FROM FIRST LINE TO END
ERASE - удалить строки из программы, ERASE FROM 038 TO 140
NUMBER - перенумеровать строки в программе
010 COMMENT FIND IF A WORD HAS EITHER AN "F" OR A "G" IN IT
020 COMMENT BY LYRA FORET 19 OCTOBER 1971
030 COMMENT
040 COMMENT SOME TEST CASES ARE FOX, GOPHER, RAT, DOG, CAT
050 COMMENT THE RESPECTIVE ANSWERS SHOULD BE YES, YES, NO, YES, NO.
060 COMMENT
070 TEXT IS "DOG"
080 COMMENT OBTAIN A LETTER OF THE TEXT
090 GET IT
100 COMMENT CHECK FOR A BLANK WHICH INDICATES END OF WORD
110 IF IT IS " " JUMP TO 500
120 COMMENT CHECK FOR F'S OR G'S
130 IF IT IS "F" JUMP TO 200
140 IF IT IS "G" JUMP TO 200
150 COMMENT IT WAS SOME OTHER LETTER, SO GO ON TO THE NEXT CHAR. IN THE TEXT
160 JUMP TO 080
200 PRINT "THE WORD HAD AN 'F' OR A 'G' IN IT."
210 COMMENT WE ARE DONE
220 STOP
500 PRINT "THE WORD DID NOT HAVE AN "F' OR A 'G' IN IT."

Библиография

[ редактировать ]
  • Раскин, Джефф (июль 1974 г.). «FLOW: язык обучения компьютерному программированию в гуманитарных науках». Компьютеры и гуманитарные науки . 8 (4): 231–237. дои : 10.1007/BF02402344 . S2CID   62648997 .
  • Льюис, Клейтон; Норман, Дональд (2014). «Проектирование ошибок» . У Беккера, Рональд (ред.). Чтения по взаимодействию человека и компьютера: к 2000 году . Эльзевир. стр. 686–697. ISBN  9780080515748 .

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 01a883a7d062c2ade10b1d6c54f3bbcf__1711595460
URL1:https://arc.ask3.ru/arc/aa/01/cf/01a883a7d062c2ade10b1d6c54f3bbcf.html
Заголовок, (Title) документа по адресу, URL1:
FLOW (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)