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

Как интерпретируемый язык может быть написан на самом себе (может,

но как он будет запустится)?
Ему же нужен будет интерпретатор.

11 ответов

12 просмотров

Смотри. Я беру такой и на луа пишу парсер луа кода, который делает байткод и начинает его выполнять )) Программа "сишного интерпретатора" будет запускать луа интерпретатор, который запустит программу на луа которая будет интерпретировать код на луа.

Так же как Golang написан на Golang.

Ну так интерпретировать грубо говоря можно любой язык на любом языке. Очевидно, что где-то в конце пути там всё равно сишка, но она отрабатывает по отношению к интерпретатору pypy как ВМ. Хотя и верно, что в конце концов ВМки раскрываются до сишной ВМ, которая в свою очередь исполняется на ВМ в виде тандема ОС/ЦПУ

Hello, World!- Автор вопроса
Snusmumriken
Смотри. Я беру такой и на луа пишу парсер луа кода...

Это понятно, я про то, что Python на Python ему для запуска нужен Python, смылс от этого.

Hello, World!- Автор вопроса
Hello, World!
Это понятно, я про то, что Python на Python ему дл...

Забавно , но реализация Pypy в N раз быстрее оригинала. Как то так.

Hello, World!- Автор вопроса
Re
Забавно , но реализация Pypy в N раз быстрее ориги...

Ну только если он компилирует программу

Re
Забавно , но реализация Pypy в N раз быстрее ориги...

Текущая реализация, потому что СЕЙЧАС pypy транслирует таки код на питоне в сишку и компилит. Считай что это самокомпилируемая реализация.

Hello, World!- Автор вопроса
Re
Так же как Golang написан на Golang.

Он тоже вроде компилируемый.

Hello, World!- Автор вопроса
Snusmumriken
Текущая реализация, потому что СЕЙЧАС pypy трансли...

Получается меня запутали. Написали блин, что интерпретатор Python на Python написали, я вот и думал зачем. А тут оказывается PyPy реализация Python транслирующаяся в си и компилирующаяся в машинный код.

Hello, World!
Получается меня запутали. Написали блин, что интер...

Ну так иерархия исполнения. Нет ничего удивительного в том, что Код луа/си транслировался в код ВМ1, тот в код ВМ2,...., а тот в автокод или выполнялся существующими порциями машкода, т.е. скомпилированной сишной ВМ. Более того так джава уже лет 20 живёт - Java -> байткод JVM -> собранная к машине JVM. Просто нужно понять, что языки пишут не под процессоры, а под виртуальные машины, а реализована эта ВМ программно или аппаратно - это другой вопрос

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта