Мне было интересно, если мы интерпретаторы обманывали, чтобы получить лучшую производительность. Насколько я понимаю, единственной реальной структурой данных в схеме является ячейка cons.Схема эффективности эффективности
Очевидно, что ячейка cons
хороша, чтобы сделать простую структуру данных, например, связанный список и деревья, но я думаю, что это может привести к замедлению кода в некоторых случаях, например, если вы хотите получить доступ к объекту cadr
. Это ухудшится с структурой данных со многими другими элементами ...
Это может быть схема car
и cdr
настолько эффективна, что она не намного медленнее, чем наличие смещения регистра в C++, например.
Мне было интересно, нужно ли было реализовать специальную структуру данных, которая выделяет собственный блок памяти. Нечто похожее на использование malloc
. Я говорю о чистой схеме, а не о FFI.
Я предполагаю, что это суммирует его до того, о чем я думал, я забыл о векторах. Например, векторы могут быть реализованы с использованием списков. Это было бы непросто, но это не сильно изменило бы работу программы. Пока интерфейс (функции) идентичен для большинства схем, тогда он может быть реализован в любом случае под капотом для повышения производительности. Как хэш-таблица может быть реализована в ассоциативном списке, но это плохо. Но интерпретаторы могут справиться с этим сами по себе. Имеет большой смысл. –
Кроме того, термин «переводчик» в основном мертв; компиляция/интерпретация - чрезвычайно размытый спектр, и бессмысленно говорить о «интерпретированном языке». О, я сегодня краб. Сожалею. –