|
-15 / 3 / 0
Регистрация: 17.12.2015
Сообщений: 296
|
|
Интерпретатор условий26.06.2017, 06:58. Показов 2294. Ответов 22
Метки нет (Все метки)
Хай товарищи! А если ли готовые решения для интерпретации условий типа:
If улс1=5 and улс2 <> "ерк" or усл3 = false then выход = true 'необязательно переменная. else выход = false end if А на выход загрузим строку скажем: усл1=0|усл="атг"|усл2=false| В таком случае на выходе я должен получить либо прост истина или лож в зависимости от условий либо переменную которая в которой будет индекс условий, там могут быть и ветки elseif и Select Case. Цикл будет не лишним но не обязательным. Лучше конечно без объявления переменных там меньше кода, но хотя это не проблема. Может даже у студии есть готовые решения. Конечно можно и написать но зачем если есть, да и там оптимизация будет лучше, да и тратить время на разработку что уже разработано.
0
|
|
| 26.06.2017, 06:58 | |
|
Ответы с готовыми решениями:
22
Интерпретатор Е сетей Компилятор и интерпретатор на C# |
|
-15 / 3 / 0
Регистрация: 17.12.2015
Сообщений: 296
|
|
| 26.06.2017, 20:53 [ТС] | |
|
Не совсем не в тему. Какие нафиг "Roslyn" это вообще что такое? Мне нужен интерпретатор условий который можно легко заюзать в проекте на vb.net и всё.
Я уверен что такое написано уже ни раз! Но вот нужно это тому тому кто работает с интеллектуальными системами. В том же php аналогичная система код пишется в документ и выполняется при обращении. У меня задача еще проще на порядок, нужно лишь условия обрабатывать, можно написать это не проблема просто жалко время.
0
|
|
|
14299 / 9384 / 1353
Регистрация: 21.01.2016
Сообщений: 35,380
|
|
| 27.06.2017, 03:11 | |
|
RadioHam433, для .NET нет интерпретаторов, потому, что есть прямой доступ к компилятору - Roslyn. Он тебе твою строку и скомпилирует. Неужели погуглить по слову Roslyn такая нереальная задача, что надо переспрашивать?
0
|
|
|
-15 / 3 / 0
Регистрация: 17.12.2015
Сообщений: 296
|
||
| 28.06.2017, 23:38 [ТС] | ||
Чёта гонишь ты мне. Потому я и просил проходить мимо тех кто не в теме.
0
|
||
|
14299 / 9384 / 1353
Регистрация: 21.01.2016
Сообщений: 35,380
|
|
| 29.06.2017, 04:05 | |
|
RadioHam433, умерь свой юношеский пыл, молодой человек.
Если у тебя на руках строка текста, которую тебе захотелось интерпретировать, то рослин для этого подходит более чем. Он позволит откомпировать строку с выражением и выполнить её. Собственно, это единственное, с чем ассоциируется слово «интерпретация». Если же у тебя что-то другое, то рекомендую сделать над собой усилие и нормально поставить вопрос.
3
|
|
|
-15 / 3 / 0
Регистрация: 17.12.2015
Сообщений: 296
|
|
| 29.06.2017, 21:35 [ТС] | |
|
А что выполнять то? Но если ты считаешь что ты понял то скажи что выполнять он будет?
Я вот смог написать интерпретатор который не чего не компилирует, просто время не хотел время тратить на написании подобного, да и затраты времени будет больше как там оптимизация лучше будет чем у написанного на скорую. Сейчас нельзя много разных условий написать.
0
|
|
|
14299 / 9384 / 1353
Регистрация: 21.01.2016
Сообщений: 35,380
|
||
| 30.06.2017, 06:58 | ||
|
RadioHam433, рослин скомпилирует исходный код в строке, что ты ему подсунешь. Что будет в этой строке зависит о тебя: это может быть несколько IF, как в твоём вопросе, а может быть целое WinForms-приложение - ему без разницы, он же компилятор.
Т.е. у тебя есть возможность прямо в коде, во время работы программы генерировать и компилировать программы (и исполнять их) произвольной сложности и размера на C# или VB.NET. Ну или не генерировать, а запрашивать у пользователя.
0
|
||
|
70 / 60 / 16
Регистрация: 22.10.2012
Сообщений: 351
|
|||||||||||
| 30.06.2017, 10:52 | |||||||||||
|
два человека друг друга не поняли
мне кажется достаточно обычной функции
писал на быструю руку
0
|
|||||||||||
|
-15 / 3 / 0
Регистрация: 17.12.2015
Сообщений: 296
|
|
| 02.07.2017, 20:00 [ТС] | |
|
В php тоже каждый пук компилируется?
Но и каков будет результат компиляции скажем? If A=1 then Or B=65 выход = true, вот строка входа (A=5|B=14|) скажем какой будет рультат компиляции? Мой интерпретатор найдёт результат за несколько мс (выход=false получится в данном случае) даже на такой слабой машине. Да мне вообще пофиг как главное просто и быстро. Я написал уже всё скомпилировано чего еще компилировать? Да прямо во время работы интерпретирует условия и вернуть результат, не какие программы не компилируются!!! Всё компилируется при сборке файла и точка!!! Но такой функции недостаточно ясно дело, есть простой интерпретатор для однотипных условий. А мне надо полноценный что бы можно работать с десятками условий. Наверняка всё же есть даже у .net такая возможность. Математические парсеры же есть это тоже самое по факту.
0
|
|
| 02.07.2017, 20:14 | |
|
Не по теме: Ребята, лично я ни фига не понимаю суть проблемы%-) Иду мимо :jokingly:
0
|
|
| 02.07.2017, 20:55 | |
|
Не по теме: Я тоже ничего не понял
0
|
|
|
14299 / 9384 / 1353
Регистрация: 21.01.2016
Сообщений: 35,380
|
|
| 03.07.2017, 03:49 | |
|
RadioHam433, повторяю последний раз: в .NET нет интерпретатора за полной ненадобностью! В API платформы доступен компилятор, который может компилировать любой произвольный код во время работы программы. И процедуру эту нужно делать только раз, потом можно просто выполнят полученный делегат или сборку, без перекомпиляции. Естественно, исходник можно подправить и пересобрать, всё во время работы приложения, без перезапуска и перекомпиляции самого приложения.
Если для тебя эта простая мысль непостижима, то это твой проблемы. Сиди и пиши свой интерпретатор. Переизобретай колесо. Добавлено через 16 секунд RadioHam433, повторяю последний раз: в .NET нет интерпретатора за полной ненадобностью! В API платформы доступен компилятор, который может компилировать любой произвольный код во время работы программы. И процедуру эту нужно делать только раз, потом можно просто выполнят полученный делегат или сборку, без перекомпиляции. Естественно, исходник можно подправить и пересобрать, всё во время работы приложения, без перезапуска и перекомпиляции самого приложения. Если для тебя эта простая мысль непостижима, то это твой проблемы. Сиди и пиши свой интерпретатор. Переизобретай колесо.
1
|
|
|
-15 / 3 / 0
Регистрация: 17.12.2015
Сообщений: 296
|
|
| 03.07.2017, 12:41 [ТС] | |
|
Да можешь повторять сколько угодно! Как это раз? Есть куча систем скриптовых где явно каждая мелочь не компилируется или всё же компилируется? Да условия вызываться могут сотни раз в секунду и меняться десятки раз, сразу после вызова меняются и снова в обработку.
Колесо? А ты предоставил мне интерпритатор условий? Ты прошёл эту тему стороной тему и было бы тебе счастье! Я разработал то что не существовало в твоей вселенной кроме Roslyn! Я сверхсветовой аппарат изобрёл а ты мне про колесо. Как можно компилировать процедуру если она уже скомпилирована? Ты гонишь фигню в чистом виде. Либо ты какой то бототролль! Я извинюсь и съем свой галстук (да хоть 10 я их не ношу) и оплачу счёт какой выставишь если ты мне дашь пример рабочей процедуры обработки условий, мне там хоть руслин хоть руслан хоть сам рамзан. Я готов заплатить лимон если ты мне предоставишь то что обработав 2 строки условий вернёт результат в виде true или false.
0
|
|
|
1 / 1 / 1
Регистрация: 22.11.2015
Сообщений: 139
|
|
| 03.07.2017, 12:42 | |
|
0
|
|
|
-15 / 3 / 0
Регистрация: 17.12.2015
Сообщений: 296
|
|
| 03.07.2017, 12:44 [ТС] | |
|
А затем что проект существует на vb.net. Да и вообще какое это имеет значение какой язык, это число логика.
Мне нужно как можно более чистый модуль что бы было проще с формированием синтаксиса. В данный момент наша система не восприимчива к ошибкам {инструкций}, и ошибки в одной {инструкции} не как не влияют на другие.
0
|
|
|
14299 / 9384 / 1353
Регистрация: 21.01.2016
Сообщений: 35,380
|
||
| 03.07.2017, 12:56 | ||
|
RadioHam433, молодой человек, не накаляйся так)))
Если я тебя правильно понял, то ты наваял чудо-код, который разбирает строку и пытается выполнить инструкции, которые в ней находит и понимает, так? Я тебе толкую о том, что этого делать не нужно, а можно отдать строку компилятору, прямо в рантайме, который из неё соберёт тебе DLL-ку или делегат (если там выражение простое), которую уже можно выполнять. И работать это будет (после компиляции) в сотни и тысячи раз быстрее и эффективнее самодельного интерпретатора. И строку с кодом всегда можно изменить и скомпилировать заново. Не нужно писать собственный компилятор, когда настоящий и очень мощный уже встроен в платформу. По этой же причине ты не найдёшь ни одного интерпретатора, ибо люди не находят нужным писать с нуля балясину, чтобы получить малую часть того, что у них уже есть на руках "изкаробки" и бесплатно. Добавлено через 3 минуты Но это всё верно, если ты пытаешься написать\найти интерпретатор VB.NET\С#. Если ты свой язык задумал (пускай и простой), то тут только с нуля писать, заготовок на эту тему - нэма.
0
|
||
|
1 / 1 / 1
Регистрация: 22.11.2015
Сообщений: 139
|
|
| 03.07.2017, 13:59 | |
|
RadioHam433, вы бототролля отличить не можете. Вам Usaga дело советует.
0
|
|
|
70 / 60 / 16
Регистрация: 22.10.2012
Сообщений: 351
|
|
| 03.07.2017, 14:15 | |
|
то ли я дебил? то ли афтар на своем языке разговаривает
чем не устраивает самый доступный Visual Studio, который делает ВСЕ, указывает на все ваши ошибки в коде, компилирует то что напишите, создает свои dll классы которые можете перецеплять к готовым приложениям без перекомпиляции (только exe перезапустите) Автор настолько аггресивен что у меня просто больше нет желания пытаться отвечать на незаданный вопрос если вы считаете что вопрос задали правильно, то напомню На нормально заданный вопрос на этом форуме отвечают нормально, быстро и качественно
0
|
|
| 03.07.2017, 17:31 | ||
|
Не по теме:
0
|
||
| 03.07.2017, 17:31 | |
|
Помогаю со студенческими работами здесь
20
Пишу свой интерпретатор Можно ли на C# написать интерпретатор
Написать интерпретатор Lisp'a Интерпретатор арифметических выражений Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|