Происходит, когда класс пытается use
несколько Черты , где две или более из этих признаков имеют , определяют свойство с тем же именем и с свойством, имеющим разные начальные значения.
Пример:
Проблемное: хотя можно разрешить конфликты между конкурирующими методами , в настоящее время нет синтаксиса, который бы разрешил конфликт между двумя конкурирующими свойствами. Единственное решение в это время - refactor ; т.е. избежать конфликта между именами свойств, которые приводят к фатальной ошибке.
Вопросы, относящиеся:
Этот поток покрытия Ваш точный вопрос. Вот реализация супа к гайкам с подробной документацией.
я записал, что подпрограмма распараллелила Forth, предназначающийся 68K, когда я был в колледже. Я определил среду выполнения и формат словаря, затем записал некоторый код C, которые загружаются, связал приложение Macintosh, которое загрузило словарь по умолчанию, заполнило некоторые векторы ввода-вывода и получило выполнение кода. Тогда я взял книгу Leo Brodie Стартовый Forth и начал реализовывать основной словарь в 68K ассемблере. Я запустил с арифметических/логичных слов, затем сделал управляющие структуры тогда слова определения/управления слова. Мое понимание - то, что как минимум Вам нужно!, +, - * и/. Остальные могут быть реализованы с точки зрения тех, но это похоже на попытку записать всю графическую библиотеку на основе SetPixel
и GetPixel
: это будет работать, но yikes, почему?
я наслаждался процессом, поскольку были некоторые действительно интересные загадки, как получение DOES>
точно правильные (и как только у меня было тело DOES>
реализация, я создавал закрытия, которые превратились в крошечные, крошечные объемы кода).
Это сообщение в comp.lang.forth перечисляет несколько "минимальных Forths".
http://groups.google.com/group/comp.lang.forth/msg/10872cb68edcb526
, Почему я знаю это? Мой брат, Mikael, записал № 3, и он также записал бумага о создании "минимального Forth" (на шведском языке, хотя). Если я помню правильно, что он хотел получить минимальный набор операторов, которые могли бы быть созданы в кремнии.
Давным-давно, у меня была книга, названная "Поточные Интерпретируемые языки", опубликовал, я думаю Байтом, который обсудил, как реализовать как будто Дальше язык (я не думаю, что они когда-либо вызывали его) в блоке Z80.
Вы не можете иметь удобного Z80, или хотеть один, но книга могла бы быть поучительной.
Я все еще не убежден, что вопрос правильно построен. Например, инструкции Постамента могут быть уменьшены; в конце концов, *
и /
может быть реализован с точки зрения +
и -
, но тогда '+' может быть реализован с точки зрения функции следования (см. аксиомы Peano .), Который помещает Вас в окружение Машины Тьюринга. Как Вы знаете, где остановиться?
Вы могли бы также хотеть смотреть на Hans Bezemer 4-й компилятор .
Какую реализацию Forth Вы используете, который не предоставляет эту информацию в документации? Учитывая природу Forth, это могло бы быть зависящим от реализации. Существует стандартный набор слов в словаре, но добрались ли они там assembly/C/whatever, или Forth не должен иметь значения, так как Forth является по определению саморасширяемым языком.