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

редактировать
Образовательный язык программирования 1970 года
FLOW
Парадигма Неструктурированный, императив
Разработал Джеф Раскин
Впервые появился1970; 50 лет назад (1970)
Испытанный
BASIC

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

Содержание
  • 1 История
  • 2 Описание
    • 2.1 Общая организация
    • 2.2 Синтаксис и возможности
    • 2.3 Операторы
      • 2.3.1 Операторы программы
      • 2.3.2 Интерактивные команды
  • 3 Пример
  • 4 Ссылки
    • 4.1 Цитаты
    • 4.2 Библиография
  • 5 Дополнительная литература
  • 6 Внешние ссылки
История

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

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

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

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

По возвращении в Калифорнийский университет в Сан-Диего (UCSD), Раскин смог организовать финансирование от UCSD и соответствующие средства от Национального научного фонда на закупку оборудования для разработки системы FLOW, в общей сложности 76000 долларов США (эквивалент 500 350 долларов США в 2019 году). Первоначальная система состояла из трех миникомпьютеров Data General Nova с объемом памяти 12 тыс. Слов, нескольких терминалов VST 1200, графического терминала Tektronix 4002 и плоттера HP 7200.. В сентябре 1973 года процессоры были обновлены до 32k слов памяти.

Первая версия FLOW была реализована двумя аспирантами в UCSD. Первоначальная версия была реализована на FORTRAN, но позже была перенесена на язык ассемблера Nova . Более поздние порты включали ассемблер MICRO 800, BASIC и Algol.

Описание

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

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

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

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

Наиболее очевидное различие между FLOW и BASIC заключался в том, что FLOW имеет только одну переменную (IT) и не имеет математических операторов. В языке всего семь операторов, и все они применяют базовую логику или операции со строками. Также нет эквивалента для цикла, цикл полностью обрабатывается с помощью тестов IFи операторов JUMP TO.

В языке нет имеют прямое взаимодействие с пользователем, как INPUTBASIC, вместо этого данные определяются в FLOW-аналоге оператора DATABASIC, TEXT. TEXT ISопределяет строку, разделенную кавычками, например TEXT IS "HELLO, WORLD", которая затем читается посимвольно с использованием GET IT. IT- это метапеременная, которая содержит последний прочитанный символ и может затем использоваться в других операторах, например, PRINT IT. ITстановится пробелом - не пустой строкой, а одним пробелом - когда ТЕКСТполностью прочитан.

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

Заявления

From:

Программные операторы

COMMENT- эквивалент BASIC REM
PRINT- как в BASIC, принимает буквальные строки между двойными кавычками, переменная IT, или НА НОВОЙ СТРОКЕдля печати возврата каретки.
ТЕКСТ- аналогично ДАННЫЕв BASIC, но используется только для строк
GET IT- считывает следующий символ из текущего оператора ТЕКСТА
JUMP TO- эквивалент GOTO, всегда расширяет целевые строки до трех цифр
ЕСЛИ ЭТО... JUMP TO- эквивалент IF... THEN, но может выполнять только проверки равенства для IT
STOP- используется для завершения программы, но не требуется

Interactiv e команды

RUN- как в BASIC, но могут определять как начальную, так и конечную строки и использовать метастроки FIRST LINEи END
WALK- выполняет программировать медленно
DISPLAY- эквивалент LIST. Чтобы перечислить всю программу, используется DISPLAY FROM FIRST LINE TO END
ERASE- удалить строки из программы, ERASE FROM 038 TO 140
NUMBER- перенумеровать строки в программе
Пример
010 КОММЕНТАРИЙ НАЙТИ, ЕСЛИ В СЛОВЕ ЕСТЬ ЛИБО "F" ИЛИ "G" 020 КОММЕНТАРИЙ LYRA FORET 19 ОКТЯБРЯ 1971 г. 030 КОММЕНТАРИЙ 040 КОММЕНТАРИЙ НЕКОТОРЫЕ ТЕСТОВЫЕ СЛУЧАИ ЯВЛЯЮТСЯ FOX, GOPHER, RAT, DOG, CAT 050 КОММЕНТАРИЙ. ОТВЕТЫ ДОЛЖНЫ БЫТЬ ДА, ДА, НЕТ, ДА, НЕТ. 060 КОММЕНТАРИЙ 070 ТЕКСТ "СОБАКА" 080 КОММЕНТАРИЙ ПОЛУЧИТЕ ПИСЬМО С ТЕКСТОМ 090 ПОЛУЧИТЬ 100 КОММЕНТАРИЙ ПРОВЕРЬТЕ ПУСТОЙ, КОТОРЫЙ УКАЗЫВАЕТ КОНЕЦ СЛОВА 110 ЕСЛИ ЭТО "" ПЕРЕЙТИ НА 500 120 КОММЕНТАРИЙ ПРОВЕРЬТЕ F ИЛИ G 130 ЕСЛИ ЕСТЬ "F" ПЕРЕХОД НА 200 140 ЕСЛИ ЭТО "G" ПЕРЕХОД НА 200 150 КОММЕНТАРИЙ, ЭТО БЫЛО ДРУГОЕ ПИСЬМО, ПЕРЕЙДИТЕ К СЛЕДУЮЩЕМУ СИМВОЛУ. В ТЕКСТЕ 160 ПЕРЕЙТИ К 080 200 ПЕЧАТИ: «СЛОВО ИМЕЕТ В СЛОВЕ 'F' ИЛИ ​​'G'». 210 КОММЕНТАРИЙ, КОТОРЫЕ МЫ СДЕЛАНЫ 220 STOP 500 ПЕЧАТЬ «В СЛОВЕ НЕ ИМЕЛО« F »ИЛИ« G ».»
Ссылки

Цитаты

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

  • Раскин, Джеф (июль 1974 г.). «FLOW: язык обучения для компьютерного программирования в гуманитарных науках». Компьютеры и гуманитарные науки. 8 (4): 231–237. doi : 10.1007 / BF02402344. S2CID 62648997. CS1 maint: ref = harv (ссылка )
  • Льюис, Клейтон; Норман, Дональд (2014). «Designing for Error». In Baecker, Ronald (ed.). Readings in Human-Computer Interaction: Toward the Year 2000. Elsevier. Pp. 686–697. ISBN 9780080515748. CS1 maint: ref = harv (ссылка )
Дополнительная литература
Внешние ссылки
  • Flow, современная реализация FLOW в LISP
Последняя правка сделана 2021-05-20 07:57:41
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте