Каковы примитивные операторы Forth? [закрытый]

Неустранимая ошибка: [TraitA] и [TraitB] определяют одно и то же свойство ([$ x]) в композиции [ClassC]

Происходит, когда класс пытается use несколько Черты , где две или более из этих признаков имеют , определяют свойство с тем же именем и с свойством, имеющим разные начальные значения.

Пример:

Проблемное: хотя можно разрешить конфликты между конкурирующими методами , в настоящее время нет синтаксиса, который бы разрешил конфликт между двумя конкурирующими свойствами. Единственное решение в это время - refactor ; т.е. избежать конфликта между именами свойств, которые приводят к фатальной ошибке.


Вопросы, относящиеся:

35
задан Seki 14 June 2015 в 09:59
поделиться

6 ответов

Этот поток покрытия Ваш точный вопрос. Вот реализация супа к гайкам с подробной документацией.

я записал, что подпрограмма распараллелила Forth, предназначающийся 68K, когда я был в колледже. Я определил среду выполнения и формат словаря, затем записал некоторый код C, которые загружаются, связал приложение Macintosh, которое загрузило словарь по умолчанию, заполнило некоторые векторы ввода-вывода и получило выполнение кода. Тогда я взял книгу Leo Brodie Стартовый Forth и начал реализовывать основной словарь в 68K ассемблере. Я запустил с арифметических/логичных слов, затем сделал управляющие структуры тогда слова определения/управления слова. Мое понимание - то, что как минимум Вам нужно!, +, - * и/. Остальные могут быть реализованы с точки зрения тех, но это похоже на попытку записать всю графическую библиотеку на основе SetPixel и GetPixel: это будет работать, но yikes, почему?

я наслаждался процессом, поскольку были некоторые действительно интересные загадки, как получение DOES> точно правильные (и как только у меня было тело DOES> реализация, я создавал закрытия, которые превратились в крошечные, крошечные объемы кода).

23
ответ дан John Parker 27 November 2019 в 07:15
поделиться

Это сообщение в comp.lang.forth перечисляет несколько "минимальных Forths".

http://groups.google.com/group/comp.lang.forth/msg/10872cb68edcb526

, Почему я знаю это? Мой брат, Mikael, записал № 3, и он также записал бумага о создании "минимального Forth" (на шведском языке, хотя). Если я помню правильно, что он хотел получить минимальный набор операторов, которые могли бы быть созданы в кремнии.

8
ответ дан Peter Mortensen 27 November 2019 в 07:15
поделиться

Давным-давно, у меня была книга, названная "Поточные Интерпретируемые языки", опубликовал, я думаю Байтом, который обсудил, как реализовать как будто Дальше язык (я не думаю, что они когда-либо вызывали его) в блоке Z80.

Вы не можете иметь удобного Z80, или хотеть один, но книга могла бы быть поучительной.

10
ответ дан David Thornley 27 November 2019 в 07:15
поделиться

Я все еще не убежден, что вопрос правильно построен. Например, инструкции Постамента могут быть уменьшены; в конце концов, * и / может быть реализован с точки зрения + и -, но тогда '+' может быть реализован с точки зрения функции следования (см. аксиомы Peano .), Который помещает Вас в окружение Машины Тьюринга. Как Вы знаете, где остановиться?

4
ответ дан Charlie Martin 27 November 2019 в 07:15
поделиться

Вы могли бы также хотеть смотреть на Hans Bezemer 4-й компилятор .

4
ответ дан bugmagnet 27 November 2019 в 07:15
поделиться

Какую реализацию Forth Вы используете, который не предоставляет эту информацию в документации? Учитывая природу Forth, это могло бы быть зависящим от реализации. Существует стандартный набор слов в словаре, но добрались ли они там assembly/C/whatever, или Forth не должен иметь значения, так как Forth является по определению саморасширяемым языком.

2
ответ дан dkretz 27 November 2019 в 07:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: