История изменений
Исправление MOPKOBKA, (текущая версия) :
Наверное была причина, по которой от него отказались и пришлось новый компилятор городить.
С и С++ превратились в разные языки, да.
Неразобрал эту фразу. Что вы называете «подключаться к компилятору»?
Использовать внутренние функции компилятора, нестандартизированные.
Что такое команда? Чем она должна отличаться от функции или макроса?
Опкод, чем он отличается от макроса надеюсь понятно, если реально нет, то объясняю, ты можешь сделать функцию (defun + (int int) (moya-novaya-instructia)) но как компилятор будет оптимизировать это на уровне машинного кода? Никак, потому что у него нету информации вместо чего ее надо вставить, какая у нее стоимость, когда лучше вставить другую, на что ее можно поменять.
Он может оптимизировать (defun add (int int) (+ int int)), лишь потому что такая функция преобразуется в понятные ему команды.
А почему? Чего не хватает?
Нужен как минимум задокументированный, более менее стабильный API для доступа ко внутренностям компилятора.
https://www.lispworks.com/documentation/HyperSpec/Body/m_defmac.htm
На этом нельзя добавить в компилятор новый опкод. Только аналог сишного #define some __asm__(...)
Исправление MOPKOBKA, :
Наверное была причина, по которой от него отказались и пришлось новый компилятор городить.
С и С++ превратились в разные языки, да.
Неразобрал эту фразу. Что вы называете «подключаться к компилятору»?
Использовать внутренние функции компилятора, нестандартизированные.
Что такое команда? Чем она должна отличаться от функции или макроса?
Опкод, чем он отличается от макроса надеюсь понятно, если реально нет, то объясняю, ты можешь сделать функцию (defun + (int int) (moya-novaya-instructia)) но как компилятор будет оптимизировать это на уровне машинного кода? Никак, потому что у него нету информации вместо чего ее надо вставить, какая у нее стоимость, когда лучше вставить другую, на что ее можно поменять.
Он может оптимизировать (defun add (int int) (+ int int)), лишь потому что такая функция преобразуется в понятные ему команды.
А почему? Чего не хватает?
Нужен как минимум задокументированный, более менее стабильный API для доступа ко внутренностям компилятора.
https://www.lispworks.com/documentation/HyperSpec/Body/m_defmac.htm
На этом нельзя добавить в компилятор новый опкод.
Исправление MOPKOBKA, :
Наверное была причина, по которой от него отказались и пришлось новый компилятор городить.
С и С++ превратились в разные языки, да.
Неразобрал эту фразу. Что вы называете «подключаться к компилятору»?
Использовать внутренние функции компилятора, нестандартизированные.
Что такое команда? Чем она должна отличаться от функции или макроса?
Опкод, чем он отличается от макроса надеюсь понятно, если реально нет, то объясняю, ты можешь сделать функцию (defun + (int int) (moya-novaya-instructia)) но как компилятор будет оптимизировать это на уровне машинного кода? Никак, потому что у него нету информации вместо чего ее надо вставить, какая у нее стоимость, когда лучше вставить другую, на что ее можно поменять.
Он может оптимизировать (defun add (int int) (+ int int)), лишь потому что такая функция преобразуется в понятные ему команды.
А почему? Чего не хватает?
Я написал, как минимум задокументированного, более менее стабильного API.
https://www.lispworks.com/documentation/HyperSpec/Body/m_defmac.htm
На этом нельзя добавить в компилятор новый опкод.
Исправление MOPKOBKA, :
Наверное была причина, по которой от него отказались и пришлось новый компилятор городить.
С и С++ превратились в разные языки, да.
Неразобрал эту фразу. Что вы называете «подключаться к компилятору»?
Использовать внутренние функции компилятора, нестандартизированные.
Что такое команда? Чем она должна отличаться от функции или макроса?
Опкод, чем он отличается от макроса надеюсь понятно, если реально нет, то объясняю, ты можешь сделать функцию (defun + (int int) (moya-novaya-instructia)) но как компилятор будет оптимизировать это на уровне машинного кода? Никак, потому что у него нету информации вместо чего ее надо вставить, какая у нее стоимость, когда лучше вставить другую, на что ее можно поменять.
Он может оптимизировать (defun add (int int) (+ int int)), лишь потому что такая функция преобразуется в понятные ему команды.
А почему? Чего не хватает?
Я написал, задокументированного API.
https://www.lispworks.com/documentation/HyperSpec/Body/m_defmac.htm
На этом нельзя добавить в компилятор новый опкод.
Исправление MOPKOBKA, :
Наверное была причина, по которой от него отказались и пришлось новый компилятор городить.
С и С++ превратились в разные языки, да.
Неразобрал эту фразу. Что вы называете «подключаться к компилятору»?
Использовать внутренние функции компилятора, нестандартизированные.
Что такое команда? Чем она должна отличаться от функции или макроса?
Опкод, чем он отличается от макроса надеюсь понятно, если реально нет, то объясняю, ты можешь сделать функцию (defun + (int int) (moya-novaya-instructia)) но как компилятор будет оптимизировать это на уровне машинного кода? Никак, потому что у него нету информации вместо чего ее надо вставить, какая у нее стоимость, когда лучше вставить другую, на что ее можно поменять.
Он может оптимизировать (defun add (int int) (+ int int)), лишь потому что такая функция преобразуется в понятные ему команды.
А почему? Чего не хватает?
Я написал.
https://www.lispworks.com/documentation/HyperSpec/Body/m_defmac.htm
На этом нельзя добавить в компилятор новый опкод.
Исходная версия MOPKOBKA, :
Наверное была причина, по которой от него отказались и пришлось новый компилятор городить.
С и С++ превратились в разные языки, да.
Неразобрал эту фразу. Что вы называете «подключаться к компилятору»?
Использовать внутренние функции компилятора, нестандартизированные.
Что такое команда? Чем она должна отличаться от функции или макроса?
Опкод, чем он отличается от макроса надеюсь понятно, если реально нет, то объясняю, ты можешь сделать функцию (defun + (int int) (moya-novaya-instructia)) но как компилятор будет оптимизировать это на уровне машинного кода? Никак, потому что у него нету информации вместо чего ее надо вставить, какая у нее стоимость, когда лучше вставить другую, на что ее можно поменять.
А почему? Чего не хватает?
Я написал.
https://www.lispworks.com/documentation/HyperSpec/Body/m_defmac.htm
На этом нельзя добавить в компилятор новый опкод.