Передача строковых параметров

Модераторы: DCV, Dimmy, victorst, kos, Prof1983

Re: Передача строковых параметров

Сообщение DCV » Пт июн 03, 2011 18:04:24

Prof1983 писал(а):Лицензия на готовое ПО - это одно, а лицензия на исходный код этого ПО - это другое. Лицензия на бинарники в основном разрешают использовать (на платной или бесплатной основе) и получать некий результат работы.


Значит, Вы устанавливаете требование к выбору языка программирования:
возможность иметь исходный код языка программирования и редактировать исходный код языка программирования? Зачем это нужно?
(С) Александр Белов
Диалоговая система Думбот 2 v1.2: http://www.iknowww.ru/Products/Dumbot
Думбот 3 www.dumbot.ru

Золотой Будда не переправится через плавильный котел. Деревянный Будда не переправится через огонь. Глиняный Будда не переправится через реку.
Аватара пользователя
DCV
Эксперт ИИ
 
Сообщения: 615
Зарегистрирован: Ср апр 21, 2010 11:43:51
Откуда: Беларусь, Гомель

Re: Передача строковых параметров

Сообщение Prof1983 » Пт июн 03, 2011 18:42:43

DCV писал(а):Значит, Вы устанавливаете требование к выбору языка программирования:
возможность иметь исходный код языка программирования и редактировать исходный код языка программирования? Зачем это нужно?
Требования к языку программирования (вернее к компилятору) я уже описывал ранее. А именно: язык должен быть компилируемым, то есть для выполнения программы не должно требоваться каких-либо виртуальных машин и т.п.
DotNET под эти требования не подходит.

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

Если хотите развить дискуссию на эту тему, то давайте создадим соответствующую тему. Например "Меряемся языками" или что-то подобное. :)

А эту тему я скоро закрою, т.к. ответ на вопрос по теме топика уже найден.
Новый проект AiKernel
Аватара пользователя
Prof1983
Серьёзный посетитель
 
Сообщения: 206
Зарегистрирован: Ср окт 11, 2006 13:29:31
Откуда: Новосибирск

Re: Передача строковых параметров

Сообщение victorst » Пт июн 03, 2011 19:11:44

Раз тему все равно закрывают, то под занавес оффтоп:
2Prof1983: Как вы относитесь к виртуальной машине языка Lua? Для Lua есть и интерпретатор и компилятор на самые распространенные программные платформы. Я проверил скорость работы интерпретатора. Delphi на простых циклах в 3-40 раз быстрее чем Lua. Довольно неплохой показатель при сравнении компилятора Delphi и интерпретатора Lua. Для контроля сравнил Delphi c CLIPS. На циклах, которые не характерны для CLIPS, но все же: CLIPS в 300-500 раз медленнее чем Delphi. Получается что Lua в 10-12 раз быстрее чем CLIPS.
К тому же Lua довольно легко стыкуется с разными языками программирования - Delphi, C++, C и т.д. В одной программе на Delphi можно запустить много Lua виртуальных машин с разными скриптами. Чем не параллельная система? Но это так, мысли вслух.
Аватара пользователя
victorst
Полноправный участник
 
Сообщения: 1073
Зарегистрирован: Вс янв 09, 2005 22:36:18
Откуда: Россия, г.Омск

Re: Передача строковых параметров

Сообщение Prof1983 » Пт июн 03, 2011 19:39:44

victorst писал(а):Как вы относитесь к виртуальной машине языка Lua?
Лично я к LUA хорошо отношусь. Но смотря для выполнения каких задач. Если использовать LUA для реализации высокоуровневой функциональности (например манипулирование онтологическими сущностями с принятием решения и т.п.), то LUA для этого хорошо подойдет. Если же использовать LUA для реализации низкоуровневого функционала (чтение из файла, передача данных, преобразование данных, требующая хорошего быстродействия и т.д.), то LUA для этого не очень хорошо подходит.

На сколько я знаю существуют встраиваемые LUA движки (виртуальные машины, если так можно сказать). То есть не требуется поставлять с программой какую-то стороннюю систему или программу. Да в общем-то вся программа вместе с интерпретатором LUA и скриптами на LUA могут быть в составе одного исполняемого файла (.exe).

Вот цитаты с википедии по теме:
Lua ([лу́а], порт. «луна») — интерпретируемый язык программирования, разработанный подразделением Tecgraf Католического университета Рио-де-Жанейро (Computer Graphics Technology Group of Pontifical Catholic University of Rio de Janeiro in Brazil). Является свободно распространяемым, с открытыми исходными текстами на языке Си.
Реализация

Как и многие интерпретируемые языки программирования, реализация Lua имеет отдельно компилятор с исходного языка в исполняемый байт-код и виртуальную машину для исполнения сгенерированного байт-кода. Причём байт-код — это не команды стековой машины, а команды некоего виртуального процессора с несколькими регистрами, что повышает эффективность исполнения. В стандартной виртуальной машине Lua используется распределение памяти со сборкой мусора (аналогично Java или .NET).

Lua использует единый строковой пул, что позволяет снизить расходы памяти на хранение строк.

Для задач, критичных по времени, имеется JIT компилятор Lua LuaJIT. Также разработан компилятор llvm-lua, генерирующий код для виртуальной машины LLVM, позволяющей последующую компиляцию в очень эффективный машинный код для процессоров различной архитектуры.

Использование

В настоящее время используется в различных проектах, где требуется встроить достаточно быстрый и нетрудный в освоении скриптовый язык программирования — например, в разработке игр, где Lua часто используется между игровым «движком» и данными для написания сценариев поведения/взаимодействия объектов.

http://ru.wikipedia.org/wiki/Lua

Я бы хотел встроить открытый интерпретатор LUA в проект AIKernel в качестве одного из "модулей".
Новый проект AiKernel
Аватара пользователя
Prof1983
Серьёзный посетитель
 
Сообщения: 206
Зарегистрирован: Ср окт 11, 2006 13:29:31
Откуда: Новосибирск

Re: Передача строковых параметров

Сообщение DCV » Пт июн 03, 2011 19:52:23

Prof1983 писал(а):Требования к языку программирования (вернее к компилятору) я уже описывал ранее. А именно: язык должен быть компилируемым, то есть для выполнения программы не должно требоваться каких-либо виртуальных машин и т.п.
DotNET под эти требования не подходит.


Язык C++, входящий в Visual Studio вроде бы может компилироваться в код, исполняемый процессором. Подходит ли этот язык под Ваши требования?
Сообщения с обсуждением языка можете сами переместить в другую тему.
(С) Александр Белов
Диалоговая система Думбот 2 v1.2: http://www.iknowww.ru/Products/Dumbot
Думбот 3 www.dumbot.ru

Золотой Будда не переправится через плавильный котел. Деревянный Будда не переправится через огонь. Глиняный Будда не переправится через реку.
Аватара пользователя
DCV
Эксперт ИИ
 
Сообщения: 615
Зарегистрирован: Ср апр 21, 2010 11:43:51
Откуда: Беларусь, Гомель

Re: Передача строковых параметров

Сообщение victorst » Пт июн 03, 2011 20:05:31

Я кстати встроил Lua в программу на Delphi. Но т.к. для Lua желательно чтобы он управлял каким-то укрупненным функционалом, то я встроил пока что в игровой движок HGE. Lua можно встроить в любую другую программу. С его помощью можно было решать какой-то типовой класс задач, управлять быстрым движком на основном языке. Можно не игровым, а модулями ИИ, например. Второй вариант - сделать на Lua множество микродвижков в рамках одной программы на том же Delphi. Например, для эмуляции параллельно работающих нейронов. Я забыл упомянуть о сравнении Lua и моей виртуальной машины, которую я писал несколько лет на ассемблере. Моя оказалась заметно медленнее чем Lua. Это меня премного удивило, тем белее, что в цикле AIGod обрабатывал целые 64 битные числа, а Lua - с плавающей точкой повышенной точности.
Обмен между Lua и основной материнской программой осуществляется через стек. Эта реализация оказалась также очень похожа на мой AIGod.
Аватара пользователя
victorst
Полноправный участник
 
Сообщения: 1073
Зарегистрирован: Вс янв 09, 2005 22:36:18
Откуда: Россия, г.Омск

Re: Передача строковых параметров

Сообщение Prof1983 » Пт июн 03, 2011 20:25:54

Раз уж пошло обсуждение посторонних тем, то и я продолжу. Я добрый модератор. :)

DCV писал(а):Язык C++ ... Подходит ли этот язык под Ваши требования?
Да. Подходит, но с одним но: в экспортируемых для внешнего использования функциях в качестве параметров не должны использоваться классы. Вместо классов можно использовать структуры.

victorst писал(а):HGE, Lua
Виктор, я тоже очень хочу заняться этими технологиями и направлениями. А так же Онтологиями, Sumo, роботами и прочим и прочим. Но, сильно ограничен в свободном времени. Так что, даже и не знаю, получится ли у меня когда-нибудь повторить то, что вы изучили и реализовали. Не говоря уже о том, чтобы сделать что-то лучше, чем это уже реализовано. Но, тем не менее, я постараюсь приложить все усилия на то, чтобы развить проект AIKernel до стадии продукта. Под продуктом я здесь понимаю фреймворк, набор библиотечек ("модулей"), которые будут объединены в одну систему.

На этих выходных у меня не получится позаниматься проектом AIKernel и вообще ИИ, поэтому откладываю на следующие. Вообще надо как-то привлекать еще людей к участию. Пока для обсуждения, а потом, возможно и для небольшого кодинга. Тем более, что заинтересованные есть, но нужно их как-то организовывать. Вопрос только как?

По всей видимости нужен какой-то стимул, какая-то четкая реальная цель. И чтобы для включения в проект не требовалось долгого изучения применяемых технологий, а все было максимально просто. На данный момент в Рунете попыток создания проектов ИИ много, но все они разрозненные и нет сильного лидера за которым пойдет народ.

А каждый сам по себе, в одиночку, вряд-ли что-то существенное сможет создать. Не говоря уже о таком сложном проекте как создание ИР.

Как же быть в такой ситуации? Что делать?
Новый проект AiKernel
Аватара пользователя
Prof1983
Серьёзный посетитель
 
Сообщения: 206
Зарегистрирован: Ср окт 11, 2006 13:29:31
Откуда: Новосибирск

Пред.

Вернуться в Проект AIKernel

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


cron


Rambler's Top100 Каталог ресурсов ListTop.Ru Каталог сайтов Союз образовательных сайтов Parenting.ru - Родители семья дети ребенок

     Сайт "Искусственный интеллект" - программирование ИИ от разработчика: общение, статьи, ссылки.