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

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

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

4 ответов

48 просмотров

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

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

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

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

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

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

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта