Это будет первая часть серии, в которой я документирую свой прогресс в книге Начиная вперед Лео Броди. Поскольку я уже прочитал первые девять глав, речь пойдет о Главе 10: I/O и вы.

Я использую Gforth 0.7.3 на ноутбуке с Linux. Мой основной инструмент — emacs, который я использую в четвертом режиме для редактирования исходных файлов и для запуска интерпретатора. До сих пор gforth довольно легко интегрировался с emacs.

Вот код главы:

упражнение 10.1:

упражнение 10.2: (это было тривиально, если вы читали главу)

Упражнение 10.3: здесь все стало очень сложно, так как я столкнулся с проблемами с emacs. Похоже, ключ ведет себя по-разному, независимо от того, запускаете ли вы gforth из своей оболочки или из emacs. В emacs key эффективно приостанавливает выполнение до тех пор, пока вы не наберете return. Эта версия не так хорошо работает в emacs (вам придется вводить новую строку после года вашего рождения). Здесь мы используем суперстроку («животные»), которая после быстрого поиска в гугле (поправьте меня, если я ошибаюсь) оказывается фор-измом.

Упражнение 10.4. В используемом нами блоке (в нашем случае блок № 2) первые 40 байт каждой строки будут содержать жизненно важные данные (имя, глаза, я) для нашего упражнения. Первые 14 байтов будут именем любовника, следующие 12 байтов будут цветом глаз любовника, а следующие 14 байтов будут именем отправителя. На букву слова изменения практически не повлияли, за исключением опускания в конце. Я не использую слово страницы в начале письма, потому что оно не работает с emacs. Обратите внимание, что наша реализация не очень эффективна, так как мы вычисляем имя 3 раза для каждой сгенерированной буквы.

Упражнение 10.5. Длина ячеек в моей системе составляет 8 байт. Таким образом, каждый блок содержит 128 ячеек.

Это все упражнения для главы 10. Эта глава была полна полезных трюков, таких как генератор случайных чисел. Я обнаружил, что с блочным вводом-выводом довольно просто иметь дело. Я прочитаю следующую главу завтра и сделаю упражнения, когда у меня будет время.