Minecraft Wiki
Advertisement

Непоследовательное изложение и неточности

изначально у компьютера 600 байт памяти.

Не совсем так. 600 байт свободной памяти. Всего памяти 8 Кбайт. К тому же в Prerelease 6 свободной памяти остается вовсе не 600 байт.

Что бы первый раз запустить компьютер, нам потребуется дискета с операционной системой — Загрузочный диск FORTH

Если этот компьютер – первый в мире, то да. Но ведь можно сохранить форт-систему на простую дискету и загрузится с нее, более того – на простую дискету можно записать не только форт, а например бейсик.

@ — помещает в стек значение переменной

Конечно, можно сказать и так, но это будет не совсем правильно. Слово @ берет из стека один элемент – адрес, и кладет в стек два байта, находящиеся в памяти по этому адресу.

! — присваивает переменной значение из стека

Та же ошибка. Все бы ничего, но вот как человек, прочитавший такое, сообразит, как сделать массив? Надо объяснять как-то так: VARIABLE <имя> резервирует в памяти 2 байта и создает новое слово <имя>, исполнение которого кладет в стек адрес зарезервированной памяти.

Чтобы получить нужный элемент массива, мы должны обратиться к памяти по адресу *начало массива*+i * *размер элемента*, 
i — номер нужного элемента.

Это верно, но:

Строки идентичны массивам, только каждый элемент — это символ, и строка всегда на один символ короче, чем создавалась, 
это связано с использованием особого символа — конец строки, он используется автоматически.

Все бы ничего, но вот только один символ кодируется одним байтом. А слова @ и ! работают с двумя байтами. Так что если получать символы из строки таким образом, то прочитается из памяти не один символ, а сразу два. И неплохо бы написать, что этот особый символ, указывающий на конец строки – это нулевой байт. Считывать отдельные символы из строки нужно словом C@, а записывать словом C!

В основном это операции проверки на истинность, все логические операции возвращают TRUE(1) или FALSE(0).

Что тут значат 1 и 0 ? За истину в форте принимается любое отличное от нуля значение, за ложь – ноль. Также в форте есть логические константы TRUE и FALSE. TRUE кладет в стек -1 (то есть все биты 1), но не 1.

Самое ужасное – не написано, какая разрядность у элементов стека!--37.190.51.16 10:02, 3 мая 2013 (UTC)

Ну так возьмите и исправьте.--Bloodhit 12:52, 3 мая 2013 (UTC)
Advertisement