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

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

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

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

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


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

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

А эт тебя просто забанили...
...
Рейтинг: 0 / 0
23.08.2016, 02:41
    #39295831
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пятничный интерпретатор c++
siebentearbeitвзять готовый код интерпретатора
Мудрые вещи говорите. Полностью с вами согласен.
https://root.cern.ch/cling
...
Рейтинг: 0 / 0
23.08.2016, 09:08
    #39295923
siebentearbeit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пятничный интерпретатор c++
Новый Годможно на ANTLR посмотреть
но это только парсер это ж генератор парсеров! :)
MasterZivА эт тебя просто забанили...интересно, за что? Я за год анонимно поста три отправил только, исключительно с этим ником, когда было лень логиниться. Хотелось бы, чтобы такая возможность вернулась.
Anatoly Moskovskysiebentearbeitвзять готовый код интерпретатора
Мудрые вещи говорите. Полностью с вами согласен.
https://root.cern.ch/cling если цель приобрести дом, то лучше купить готовый дом, а если цель научиться строить, то надо браться за кирпичи :)
спасибо за ссылку.
...
Рейтинг: 0 / 0
23.08.2016, 10:19
    #39295992
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пятничный интерпретатор c++
Собственно ANTLR не особо приближает к конечной цели. Что
является выходом ANTLR и что вы с этим выходом будете делать
это еще та проблема.
...
Рейтинг: 0 / 0
23.08.2016, 11:13
    #39296075
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пятничный интерпретатор c++
siebentearbeitто надо браться за кирпичи
почему бы не начать с изготовления кирпичей?
...
Рейтинг: 0 / 0
23.08.2016, 11:20
    #39296082
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пятничный интерпретатор c++
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
23.08.2016, 11:40
    #39296113
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пятничный интерпретатор c++
там только 2 файла вручную написаны

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


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

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

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

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

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

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

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

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


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