powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / пятничный интерпретатор c++
25 сообщений из 42, страница 1 из 2
пятничный интерпретатор c++
    #39295674
siebentearbeit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне внезапно понадобился интерпретатор/транслятор с-подобного языка.
Цель: выполнять внутри программы с-подобный код, определённый пользователем.

Можно было бы взять готовый движок под, например, lua или использовать jscript/vbscript или взять готовый код интерпретатора и сэкономить время. Но я почему-то так не сделал.

Видимо, потому что:
1. я никогда не писал компиляторы.
2. это хорошая pure программерская задача.
3. имя код интерпретатора на руках, можно добавлять туда различные вещи по желанию. Это не отменяет пункт про готовый код, но для меня лично, я чуть лучше разбираюсь в коде, который сам набрал, чем в коде, который смотрел и с которым разбирался. Да и просто он мне ближе.

я уже успел потратить где-то час на лексический парсер, уже тестировал его, после чего меня выдернуло, и я буду отсутствовать пару дней, пока снова смогу вернуться к работе (пишу с медицинского терминала, который показывает мои ТТХ, но я нашёл у него usb-вход, а врачи пока отсутствуют. шутка), поэтому, если у вас есть опыт, которым можно поделиться, или интерес к теме или ссылки на полезную литературу, накидайте мне это в тему, а то два дня смотреть на мониторчике свои ТТХ меня уже тоскливит.

и верните мне мою чордову возможность слать анонимные посты с моего чордового ip-адреса
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39295681
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно на ANTLR посмотреть
но это только парсер


http://www.antlr.org/
https://github.com/antlr/grammars-v4
https://github.com/antlr/grammars-v4/blob/master/c/C.g4
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39295767
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новый Год,

Правильно, на ANTLR ОЧЕНЬ надо посмотреть....
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39295768
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
siebentearbeitи верните мне мою чордову возможность слать анонимные посты с моего чордового ip-адреса

А эт тебя просто забанили...
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39295831
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
siebentearbeitвзять готовый код интерпретатора
Мудрые вещи говорите. Полностью с вами согласен.
https://root.cern.ch/cling
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39295923
siebentearbeit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новый Годможно на ANTLR посмотреть
но это только парсер это ж генератор парсеров! :)
MasterZivА эт тебя просто забанили...интересно, за что? Я за год анонимно поста три отправил только, исключительно с этим ником, когда было лень логиниться. Хотелось бы, чтобы такая возможность вернулась.
Anatoly Moskovskysiebentearbeitвзять готовый код интерпретатора
Мудрые вещи говорите. Полностью с вами согласен.
https://root.cern.ch/cling если цель приобрести дом, то лучше купить готовый дом, а если цель научиться строить, то надо браться за кирпичи :)
спасибо за ссылку.
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39295992
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно ANTLR не особо приближает к конечной цели. Что
является выходом ANTLR и что вы с этим выходом будете делать
это еще та проблема.
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39296075
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
siebentearbeitто надо браться за кирпичи
почему бы не начать с изготовления кирпичей?
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39296082
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСобственно ANTLR не особо приближает к конечной цели. Что
является выходом ANTLR и что вы с этим выходом будете делать
это еще та проблема.
нет там никакой проблемы
глянь приложенный файлик, там форматируется кое-какой текстовый файл, прототип на питоне,
на C++ примерно то же самое
на укурный формат файла, который парсится, внимания не обращай

текст, выделенный красным -- это хуки
в них можно, например, складывать данные в глобальные переменные

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
grammar scominit;

options {
    language=Python;
}

@header {
def out (x): sys.stdout.write(x)
}

file    : 
        (scom)* EOF
        ;

scom    : 
        'BEGIN' 'Scominit'  {out ('BEGIN Scominit\n')} 
        'Name' '=' t= ID    {out ('Name = ' + $t.text + '\n')}
        'ClockDomain' '=' '{' t=ID {out ('ClockDomain = {' + $t.text ) } (',' t=ID {out(', ' + $t.text )})? '}'  {out('}\n')}
        (t=HEX {out ( '  ' + $t.text )} t=HEX {out ( '  ' + $t.text + '\n')})*
        'END' {out('END\n')}
        ;

HEX     :  
        ('0x')('0'..'9'|'A'..'F'|'a'..'f')*	
        ;

ID      :   
        ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
        ;

COMMENT :   
        '#'  ~('\n'|'\r')* '\r'? '\n' {$channel=HIDDEN;}
        ;

WS      :   
        ( ' '
        | '\t'
        | '\r'
        | '\n'
        ) {$channel=HIDDEN;}
        ;
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39296113
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там только 2 файла вручную написаны

Код: plaintext
1.
2.
3.
.
├── edformat
├── scominit
│   ├── scominit.g
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39296254
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
siebentearbeitMasterZivА эт тебя просто забанили...интересно, за что? Я за год анонимно поста три отправил только, исключительно с этим ником, когда было лень логиниться. Хотелось бы, чтобы такая возможность вернулась.


У тебя сейчас НЕТ ника. Ты постишь исключительно как аноним, без пользователя.
Для того, чтобы ты мог постить и отслеживаться по логину, тебе нужно всего лишь зарегистрироваться, и далее один раз войти на сайт, затем уже броузер сохранить cookie и ты будешь постить уже не как аноним.
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39296435
siebentearbeit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропилsiebentearbeitто надо браться за кирпичи
почему бы не начать с изготовления кирпичей?Должный уровень абстракции. Я описал это в начале, в третьем пункте.

MasterZivУ тебя сейчас НЕТ ника. Ты постишь исключительно как аноним, без пользователя.
Не, ты невнимательно, наверно, прочитал. У меня есть ник (CEMb), но я не могу отправлять мои чордовы анонимные посты под siebentearbeit-ом (седьмой труд, нем.) потому что с моего чордова ip-адреса запрещены анонимные посты. Я хотел узнать, почему.
Чтобы не было разрыва логики: я сейчас не на работе, а анонимные посты запрещены для моего рабочего компа.
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39296470
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
siebentearbeitЯ хотел узнать, почему.
Чтобы не было разрыва логики: я сейчас не на работе, а анонимные посты запрещены для моего рабочего компа.
ИМХУ похоже кто-то с твоей работы сильно достал модераторов sql.ru раз IP забанили. Поставь frigate или что-нибудь подобное. Ну а если надо справедливость восстановить, то пиши сюда .
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39296472
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
siebentearbeit
MasterZivУ тебя сейчас НЕТ ника. Ты постишь исключительно как аноним, без пользователя.
Не, ты невнимательно, наверно, прочитал. У меня есть ник (CEMb), но я не могу отправлять мои чордовы анонимные посты под siebentearbeit-ом (седьмой труд, нем.) потому что с моего чордова ip-адреса запрещены анонимные посты. Я хотел узнать, почему.
Чтобы не было разрыва логики: я сейчас не на работе, а анонимные посты запрещены для моего рабочего компа.

Потому что "тебя на работе" забанили по IP-адресу или по кукам или ещё как-то.
Если ты зарегистрируешься, то тебя сразу станут банить или не банить по пользователю сайта, а не по вторичным признакам, и ты сможешь постить откуда угодно, даже из забаненой сети/компьютера.
Либо используй ник CEMb, либо создай новый, siebentearbeit.
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39296653
siebentearbeit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хм... интересно, сколько народу ходит с моей работы в sql.ru :)
А, ну и вспомнил, что четверть-полгода назад анонимные посты работали...
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39296681
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
siebentearbeit,
Tiny C Compiler
там всё как ты любишь: и парсер ручными дедовскими методами, и запуск сразу, и многоархитектурность
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39297823
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan), вот это довольно прикольная штука, судя по описаниям, спасибо.
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39298176
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMb,

ага, gcc-testsuite-3.2 даже почти проходит
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39298193
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КМК С++ это самый неудачный выбор для транслируемого языка.
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39298252
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКМК С++ это самый неудачный выбор для транслируемого языка.Ты имел ввиду интерпретируемого?
Да нет, не думаю. Если не заморачиваться с библиотеками (и чтением пре-компилированных объектников из них), то интрепретатор для С++ ничем не будет отличаться от всех ныне существующих традиционно скриптовых языков.
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39298261
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl,

Все равно, как выяснилось, ТСу достаточно С, а С++ он в теме написал для красного словца
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39298263
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто подумайте сколько фич связанных с оптимизацией заложены в С++
и сколько из них враз станут ненужны. И зачем тогда С++ ? Может лучше Lua?
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39298281
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПросто подумайте сколько фич связанных с оптимизацией заложены в С++
и сколько из них враз станут ненужны. А при чем здесь оптимизация? Все будет зависеть от того как ты свой интерпретатор напишешь.
Впрочем, на ЯП с функциями ты классически чистый интерпретатор в принципе сделать не сможешь, а значит и место под оптимизатор у тебя в нем обязательно будет. Ну а уж потратишь ты время на обучение оптимизатора или забьешь это уже будет целиком на твоей совести.

maytonИ зачем тогда С++ ? Может лучше Lua?Ну так а привычка к синтаксису? Вот если тебя разбудить среди ночи и потребовать написать алгоритм. На каком языке ты его спросонья писать будешь? Вот! Потому и берут некоторые люди С++ в качестве базы для своего макроязыка.
Впрочем и желание попонтоваться тоже солидный фактор.
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39298316
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyВсе равно, как выяснилось, ТСу достаточно С, а С++ он в теме написал для красного словца Вовсе даже для зелёного
Это был план максимум.
Цель общая такая: есть программа с кнопками. Вводим текст, нажимаем кнопку, текст исполняется. Идём дальше, в интерпретатор добавляем ключевые слова, которые имеют некий смысл макроса, и интерпретатор начинает их понимать и выполнять.
...
Рейтинг: 0 / 0
пятничный интерпретатор c++
    #39298342
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMb, White Owl, mayton

по моему опыту оптимизатор это не особо главная часть интерпретируемого языка, можно хоть заоптимизироваться
но если у тебя не будет отладчика, то почти любой алгоритм больше 15 строчек превращается в проблему

по этому я в одном своём большом проекте использовал ActiveScripting от MS и не заморачивался по поводу скорости
...
Рейтинг: 0 / 0
25 сообщений из 42, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / пятничный интерпретатор c++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]