169 похожих чатов

Вообще, хотел спросить, что в случае с питоном должен делать

стек возвратов? На железе оно понятно, PC (program counter, оно же IP - instruction pointer) один и он скачет по адресам, надо где-то хранить адреса, куда ему возвращаться из тех слов, которые вызывают другие слова. Но я совершенно не могу понять, как это воткнуть в мой уже имеющийся код

4 ответов

19 просмотров

В приведённом коде есть s.pc, который «скачет по адресам». Его значения и записывают в стек возвратов. Но сам выбранный путь порочен. По мере развития lang.py ты наткнёшься на слова Форта, реализующие паржинг и компиляцию — то, что сейчас реализовано средствами Питона. Не то, чтобы этот чудовищный подход невозможно довести до конца. И не такое делали, см. компилятор Форта на Бейсике выше или несколько Фортов на Си, которые легко гуглятся. Просто полученные извращения мало кому интересны, кроме интереса их авторов «у меня получилось позавтракать, стоя на голове!»

Арви ☮ Хэкер
В приведённом коде есть s.pc, который «скачет по а...

я как мог - так и сделал. В книгах по форту, которые мне рекомендовали был максимум форт для Атари 2600 и иже. Возиться с эмуляторами для такого мне было лень и я сделал как мог, на коленке за часочек. Может быть, есть какая-то более актуальная литература, чтобы я написал основу лучше? Если нет - то это мой кактус, я его грызу.

Поспорю. «method» это слово, реализованное на Питоне — то есть примитив. Для вызова примитивов стек возвратов не нужен.

Арви ☮ Хэкер
Поспорю. «method» это слово, реализованное на Пито...

> Для вызова примитивов стек возвратов не нужен. И в чем противоречие? )) Я же не говорил, что он нужен для этого ;)

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

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
Any electron dev here?
Sayanth Tezro
12
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
так это может кто что знает или использует что-то как макбук только не макбук? на 13…14 дюймов
Michael
9
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Кто-нибудь знает почему SPM клонирует репо целиком? Некоторые репы просто огромные, как та же swift-syntax которая нужна для использования макросов. Сначала подумал, что это...
iMike
6
Карта сайта