Оригинал: Exercise 37: Little BASIC
Переводчик: Феликс Ли
Лицензия: CC BY-NC-SA 4.0
Гордо использует Google Translate
Теперь вам следует вернуться в мое детство и реализовать интерпретатор BASIC. Нет, я имею в виду не "очень простой базовый интерпретатор". Я говорю о программном языке BASIC. Это один из самых ранних языков программирования, созданный Джоном Кемени и Томасом Куртцом в Дартмутском университете. Эта версия называется DARTMOUTH BASIC, и ее код выглядит следующим образом:
5 LET S = 0
10 MAT INPUT V
20 LET N = NUM
30 IF N = 0 THEN 99
40 FOR I = 1 TO N
45 LET S = S + V(I)
50 NEXT I
60 PRINT S / N
70 GO TO 5
99 END
Числа слева — это фактические строки, которые были введены вручную. Вы сообщаете BASIC каждую строку с номером, а затем просто просите его "перейти" к этой строке для цикла. В более поздних версиях BASIC это стало GOTO
, что стало символом эпохи компьютеризации.
Последняя версия BASIC, записанная на странице BASIC в Википедии, которая также отображает долгий процесс эволюции этого языка до все более современной формы. Со временем он вобрал структуры, такие как C и Algol, а затем стал объектно-ориентированным, и сегодня можно найти довольно продвинутые версии BASIC. Если вам нужен современный бесплатный BASIC, обратитесь к Gambas BASIC, доступному по адресу http://gambas.sourceforge.net/en/main.html.## Часто задаваемые вопросы
Ваша задача — реализовать оригинальный интерпретатор BASIC — с введенными вручную строками и всеми буквами в верхнем регистре. Вам потребуется просмотреть страницу BASIC в Википедии, чтобы получить возможные знаки и примеры кода, а также прочитать страницу Dartmouth BASIC в Википедии для получения дополнительных подсказок. Ваш интерпретатор должен обрабатывать как можно больше оригинального BASIC и генерировать эффективный вывод.
Когда вы будете пробовать это сделать, я рекомендую начать с простых математических операций, печати и отслеживания строковых номеров. После этого попробуйте сделать GOTO
работоспособным. Если вы завершите его, вы сможете закончить остальную часть, медленно развивая набор тестовых программ, чтобы гарантировать, что ваш интерпретатор работает правильно. Удачи! Это может занять у вас некоторое время, но это должно быть интересно. Я могу видеть, как сам потратил несколько месяцев над этим, добавляя глупые функции, такие как графики, чтобы я мог создавать все эти глупые маленькие программы, когда был ребенком. Я написал так много кода на BASIC, что вычисление номеров строк полностью сбило меня с толку. Возможно, именно поэтому мне так нравится Vim.## Исследовательское обучение
Эта задача сложна, но если вам хочется дополнительного вызова, выполните следующие действия:
if
и все остальное, что можно найти в старых не-ООП языках программирования, таких как C или Pascal. Это огромная задача, поэтому рекомендую не писать RDP-парсер вручную. Используйте инструменты, такие как SLY, чтобы сгенерировать ваш парсер, и сохраните свое ментальное усилие для более важных вещей.Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )