Нейронная сеть
От: Mikola Россия нет
Дата: 17.11.03 20:27
Оценка:
Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой)
Помогите plz. кто чем может


18.11.03 13:09: Перенесено модератором из 'Прочее' — _MM_
+
Re: Нейронная сеть
От: bkat  
Дата: 17.11.03 20:44
Оценка:
Здравствуйте, Mikola, Вы писали:

M>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой)

M>Помогите plz. кто чем может
M>

Если найдешь такое, то не забудь поделиться.
Eсть у меня нечто, но делиться не буду.
Самому не хватает

Впрочем тут ты сможешь найти то,
что тебе возможно поможет.

В целом задача очень сложна.
Я бы сказал, что в общем случае она просто неподъемна.
Re: Нейронная сеть
От: Аноним  
Дата: 18.11.03 06:27
Оценка:
Здравствуйте, Mikola, Вы писали:

M>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой)

M>Помогите plz. кто чем может
M>

Есть теорема, указывающая на принципиальную невозможность создания системы, проверяющей логическую верность программы по её тексту...И здесь — нате
Re: Нейронная сеть
От: LaptevVV Россия  
Дата: 18.11.03 08:24
Оценка: :))
Здравствуйте, Mikola, Вы писали:

M>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой)

M>Помогите plz. кто чем может
M>
Не, ну нифига себе!!!!
Сделай ему кандидатскую диссертацию в виде легкого упражнения на досуге!!!
У меня студенты несколько дипломов написали по поводу поиска логических ошибок в программе, и конца теме не видно, а уважаемый Мыкола на халяву хочеть!!!!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Нейронная сеть
От: alexandrov_alex США  
Дата: 18.11.03 09:20
Оценка: :))) :)))
Здравствуйте, LaptevVV, Вы писали:

L> Не, ну нифига себе!!!!

L> Сделай ему кандидатскую диссертацию в виде легкого упражнения на
L> досуге!!! У меня студенты несколько дипломов написали по поводу поиска
L> логических ошибок в программе, и конца теме не видно, а уважаемый Мыкола
L> на халяву хочеть!!!!

Ну, для C++ ему можно помочь вот таким батничком:

@echo off
cl /c /Tp test.cpp >nul 2>nul
if %errorlevel% == 0 goto ok
echo This program is malformed.
goto end
:ok
echo This program is well-formed.
:end


-- Всего хорошего!
-- Alex Alexandrov, e-mail: alex_alexandrov@fromru.com
Posted via RSDN NNTP Server 1.8 beta
It's kind of fun to do the impossible (Walt Disney)
Re[3]: Нейронная сеть
От: bkat  
Дата: 18.11.03 09:28
Оценка:
Здравствуйте, alexandrov_alex, Вы писали:

_>Здравствуйте, LaptevVV, Вы писали:


L>> Не, ну нифига себе!!!!

L>> Сделай ему кандидатскую диссертацию в виде легкого упражнения на
L>> досуге!!! У меня студенты несколько дипломов написали по поводу поиска
L>> логических ошибок в программе, и конца теме не видно, а уважаемый Мыкола
L>> на халяву хочеть!!!!

_>Ну, для C++ ему можно помочь вот таким батничком:


_>
_>@echo off
_>cl /c /Tp test.cpp >nul 2>nul
_>if %errorlevel% == 0 goto ok
_>echo This program is malformed.
_>goto end
_>:ok
_>echo This program is well-formed.
_>:end
_>


_>-- Всего хорошего!

_>-- Alex Alexandrov, e-mail: alex_alexandrov@fromru.com

Ну если под логическими ошибками понимать синтаксические ошибки,
то да, это поможет

В целом, искать логические ошибки без формальных спецификаций — дело бесполезное.
Re: Нейронная сеть
От: AndreyFedotov Россия  
Дата: 18.11.03 10:22
Оценка: 1 (1)
Здравствуйте, Mikola, Вы писали:

M>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой)

M>Помогите plz. кто чем может
M>

Логические ошибки найти по тексту программы нельзя в принципе. Так как для этого нужно знать предназначение программы, которое в тексте не описано. Есть даже теорема, которая это доказывает.
А вот попробовать найти некторорые синтаксические ошибки — вполне легко. Простейший случай — поиск пропущеных фигурных скобок в программах на C/C++. Вот тут нейронная сеть действительно может помочь. Однако для того, что бы её применить текст программы требуется предварительно преобразовать к опеделённому виду, на котором и может работать сеть.
В общем — уточни, что именно хотелось бы получить.
А то тут уже некоторые уже дисеры на халяву пишут...

С Уважением, Андрей
Re[2]: Нейронная сеть
От: Аноним  
Дата: 18.11.03 11:10
Оценка:
Здравствуйте, AndreyFedotov, Вы писали:

AF>Здравствуйте, Mikola, Вы писали:


M>>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой)

M>>Помогите plz. кто чем может
M>>

AF> Логические ошибки найти по тексту программы нельзя в принципе. Так как для этого нужно знать предназначение программы, которое в тексте не описано. Есть даже теорема, которая это доказывает.

AF> А вот попробовать найти некторорые синтаксические ошибки — вполне легко. Простейший случай — поиск пропущеных фигурных скобок в программах на C/C++. Вот тут нейронная сеть действительно может помочь. Однако для того, что бы её применить текст программы требуется предварительно преобразовать к опеделённому виду, на котором и может работать сеть.

Зачем нейронная сеть здесь нужна ? Здесь обычный синтаксический парсер рулит
P.S. Тыкают нейронными сетями, где только можно — только великию идею самоорганизирующихся алгоритмов похабят
Re[3]: Нейронная сеть
От: AndreyFedotov Россия  
Дата: 18.11.03 11:15
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, AndreyFedotov, Вы писали:


AF>>Здравствуйте, Mikola, Вы писали:


M>>>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой)

M>>>Помогите plz. кто чем может
M>>>

AF>> Логические ошибки найти по тексту программы нельзя в принципе. Так как для этого нужно знать предназначение программы, которое в тексте не описано. Есть даже теорема, которая это доказывает.

AF>> А вот попробовать найти некторорые синтаксические ошибки — вполне легко. Простейший случай — поиск пропущеных фигурных скобок в программах на C/C++. Вот тут нейронная сеть действительно может помочь. Однако для того, что бы её применить текст программы требуется предварительно преобразовать к опеделённому виду, на котором и может работать сеть.

А>Зачем нейронная сеть здесь нужна ? Здесь обычный синтаксический парсер рулит

А>P.S. Тыкают нейронными сетями, где только можно — только великию идею самоорганизирующихся алгоритмов похабят

В принципе парсера для поиска ошибок достаточно. Однако когда возникает многовариантность, то сделать хороший алгоритм поиска — где именно должна была стоять } или ; довольно сложно.

С Уважением, Андрей
Re: Нейронная сеть
От: LaptevVV Россия  
Дата: 18.11.03 11:33
Оценка:
Здравствуйте, Mikola, Вы писали:

M>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой)

M>Помогите plz. кто чем может
M>

А Mikola молчит чего-то
Давай, Колись поконкретней, чего надо-то?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Нейронная сеть
От: Аноним  
Дата: 18.11.03 11:44
Оценка:
А>>Зачем нейронная сеть здесь нужна ? Здесь обычный синтаксический парсер рулит
А>>P.S. Тыкают нейронными сетями, где только можно — только великию идею самоорганизирующихся алгоритмов похабят

AF>В принципе парсера для поиска ошибок достаточно. Однако когда возникает многовариантность, то сделать хороший алгоритм поиска — где именно должна была стоять } или ; довольно сложно.


Забавно...Это ж какая такая многовариантность ? Какие сложности могут бытьпри написании синтаксического анализатора по конечному автомату разбора грамматики С++ ? Только что автомат будет побольше,чем у прочих языков, из-за бОльшей сложности синтаксиса С++ А конкретно в вашем случае — что будет стоять } или ; — ИМХО проблема явно надуманная — при нисходящем рекурсивном синтаксическом разборе выяснить, что за лексема должна стоять — не проблема.
Re[5]: Нейронная сеть
От: AndreyFedotov Россия  
Дата: 18.11.03 11:48
Оценка: 2 (1)
Здравствуйте, Аноним, Вы писали:



А>>>Зачем нейронная сеть здесь нужна ? Здесь обычный синтаксический парсер рулит

А>>>P.S. Тыкают нейронными сетями, где только можно — только великию идею самоорганизирующихся алгоритмов похабят

AF>>В принципе парсера для поиска ошибок достаточно. Однако когда возникает многовариантность, то сделать хороший алгоритм поиска — где именно должна была стоять } или ; довольно сложно.


А>Забавно...Это ж какая такая многовариантность ? Какие сложности могут бытьпри написании синтаксического анализатора по конечному автомату разбора грамматики С++ ? Только что автомат будет побольше,чем у прочих языков, из-за бОльшей сложности синтаксиса С++ А конкретно в вашем случае — что будет стоять } или ; — ИМХО проблема явно надуманная — при нисходящем рекурсивном синтаксическом разборе выяснить, что за лексема должна стоять — не проблема.


Возможно. Особенно если быть уверенным в том, что при нарушении синтаксиса всегда возможен "настоящий синтаксический разбор"...
Вспомним классику:
Казнить нельзя помиловать.
И где тут должна была стоять запятая?
Вы уверены, что возможно однозначно пределить место ошибки?

С Уважением, Андрей
Re[5]: Нейронная сеть
От: bkat  
Дата: 18.11.03 11:56
Оценка:
Здравствуйте, Аноним, Вы писали:



А>>>Зачем нейронная сеть здесь нужна ? Здесь обычный синтаксический парсер рулит

А>>>P.S. Тыкают нейронными сетями, где только можно — только великию идею самоорганизирующихся алгоритмов похабят

AF>>В принципе парсера для поиска ошибок достаточно. Однако когда возникает многовариантность, то сделать хороший алгоритм поиска — где именно должна была стоять } или ; довольно сложно.


А>Забавно...Это ж какая такая многовариантность ? Какие сложности могут бытьпри написании синтаксического анализатора по конечному автомату разбора грамматики С++ ? Только что автомат будет побольше,чем у прочих языков, из-за бОльшей сложности синтаксиса С++ А конкретно в вашем случае — что будет стоять } или ; — ИМХО проблема явно надуманная — при нисходящем рекурсивном синтаксическом разборе выяснить, что за лексема должна стоять — не проблема.


Легко указать сам факт того, что есть ошибка.
Понять в чем ошибка — тут уже синтаксического анализа будет недостаточно.
Re[6]: Нейронная сеть
От: Аноним  
Дата: 18.11.03 12:26
Оценка:
Здравствуйте, AndreyFedotov, Вы писали:

AF>Здравствуйте, Аноним, Вы писали:




А>>>>Зачем нейронная сеть здесь нужна ? Здесь обычный синтаксический парсер рулит

А>>>>P.S. Тыкают нейронными сетями, где только можно — только великию идею самоорганизирующихся алгоритмов похабят

AF>>>В принципе парсера для поиска ошибок достаточно. Однако когда возникает многовариантность, то сделать хороший алгоритм поиска — где именно должна была стоять } или ; довольно сложно.


А>>Забавно...Это ж какая такая многовариантность ? Какие сложности могут бытьпри написании синтаксического анализатора по конечному автомату разбора грамматики С++ ? Только что автомат будет побольше,чем у прочих языков, из-за бОльшей сложности синтаксиса С++ А конкретно в вашем случае — что будет стоять } или ; — ИМХО проблема явно надуманная — при нисходящем рекурсивном синтаксическом разборе выяснить, что за лексема должна стоять — не проблема.


AF>Возможно. Особенно если быть уверенным в том, что при нарушении синтаксиса всегда возможен "настоящий синтаксический разбор"...

AF>Вспомним классику:
AF>Казнить нельзя помиловать.
AF>И где тут должна была стоять запятая?
Это уже вопросы логики, нежели синтаксиса.
AF>Вы уверены, что возможно однозначно пределить место ошибки?

В данном случае — нет. Но это в данном случае

AF>С Уважением, Андрей
Re[6]: Нейронная сеть
От: Аноним  
Дата: 18.11.03 12:29
Оценка:
Здравствуйте, bkat, Вы писали:

B>Здравствуйте, Аноним, Вы писали:





B>Легко указать сам факт того, что есть ошибка.

B>Понять в чем ошибка — тут уже синтаксического анализа будет недостаточно.

Так понимание — это прерогатива разума .
Re[7]: Нейронная сеть
От: AndreyFedotov Россия  
Дата: 18.11.03 12:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, AndreyFedotov, Вы писали:


AF>>Здравствуйте, Аноним, Вы писали:




А>>>>>Зачем нейронная сеть здесь нужна ? Здесь обычный синтаксический парсер рулит

А>>>>>P.S. Тыкают нейронными сетями, где только можно — только великию идею самоорганизирующихся алгоритмов похабят

AF>>>>В принципе парсера для поиска ошибок достаточно. Однако когда возникает многовариантность, то сделать хороший алгоритм поиска — где именно должна была стоять } или ; довольно сложно.


А>>>Забавно...Это ж какая такая многовариантность ? Какие сложности могут бытьпри написании синтаксического анализатора по конечному автомату разбора грамматики С++ ? Только что автомат будет побольше,чем у прочих языков, из-за бОльшей сложности синтаксиса С++ А конкретно в вашем случае — что будет стоять } или ; — ИМХО проблема явно надуманная — при нисходящем рекурсивном синтаксическом разборе выяснить, что за лексема должна стоять — не проблема.


AF>>Возможно. Особенно если быть уверенным в том, что при нарушении синтаксиса всегда возможен "настоящий синтаксический разбор"...

AF>>Вспомним классику:
AF>>Казнить нельзя помиловать.
AF>>И где тут должна была стоять запятая?
А>Это уже вопросы логики, нежели синтаксиса.

Да, безусловно. Но ошибка то синтаксическая. Запятая в любом случае ДОЛЖНА быть. Вот способ её постановки дело другое.

AF>>Вы уверены, что возможно однозначно пределить место ошибки?


А>В данном случае — нет. Но это в данном случае


А каков будет процент подобных случаев в анализе реальных программ и реальных ошибок?
В случае когда ситуация не однозначна, желательно иметь возможность видеть — различные варианты того, где может быть ошибка и вероятности того, что ошибка именно там.
Вот с этой то задачей нейронные сети помогают справляться довольно хорошо.

С Уважением, Андрей
Re[7]: Нейронная сеть
От: bkat  
Дата: 18.11.03 12:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, bkat, Вы писали:


B>>Здравствуйте, Аноним, Вы писали:





B>>Легко указать сам факт того, что есть ошибка.

B>>Понять в чем ошибка — тут уже синтаксического анализа будет недостаточно.

А>Так понимание — это прерогатива разума .


да это так, но я лично от компилятора ожидаю внятных сообщений об ошибках
Re: Нейронная сеть
От: Аноним  
Дата: 18.11.03 13:41
Оценка:
Народ, мне не нужен Полынй Алогритм + Прога + Тесты.
Это просто мне наш Профессор задал в качестве РГЗ Вот такой вот он
Я у его аспирантов спрашивал как делать (они ведут предмет) — они тоже ответили, что если сделаешь — иди защищай докторскую.
Мне хотя-бы в общих чертах как это выглядит — ну схемку какую-нить — а там уж сдадим
Помогите plz, нигде не могу найти даже самого общего по теме.
Re[2]: Нейронная сеть
От: bkat  
Дата: 18.11.03 13:53
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Народ, мне не нужен Полынй Алогритм + Прога + Тесты.

А>Это просто мне наш Профессор задал в качестве РГЗ Вот такой вот он
А>Я у его аспирантов спрашивал как делать (они ведут предмет) — они тоже ответили, что если сделаешь — иди защищай докторскую.
А>Мне хотя-бы в общих чертах как это выглядит — ну схемку какую-нить — а там уж сдадим
А>Помогите plz, нигде не могу найти даже самого общего по теме.

Экспертные системы — один из вариантов создания таких систем.
Заполняешь базу правил (знаний), компилируешь текст программы
в некоторое реляционное представление и осуществляешь логических вывод
с использованием базы правил.
Чем лучше база знаний, тем больше ошибок можно пытаться находить.
Re[2]: Нейронная сеть
От: AndreyFedotov Россия  
Дата: 18.11.03 14:07
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Народ, мне не нужен Полынй Алогритм + Прога + Тесты.

А>Это просто мне наш Профессор задал в качестве РГЗ Вот такой вот он
А>Я у его аспирантов спрашивал как делать (они ведут предмет) — они тоже ответили, что если сделаешь — иди защищай докторскую.
А>Мне хотя-бы в общих чертах как это выглядит — ну схемку какую-нить — а там уж сдадим
А>Помогите plz, нигде не могу найти даже самого общего по теме.

Не знаю, что имел в виду ваш проффесор, но можно попробовать следующее:
— предсказание N + 1 -го символа по N преведущим
— распознавание определённых шаблонов (например поиск блока по набору признаков, включая как синтаксические "{" и "}", так и смысловые, такие как форматирование текста)
— выделение схожих идентификаторов (перемнных и имён функций)
— предсказание типа N + 1 -го элемента (опрератор/идентификатор/новая функция) по преведущим N элементам

С Уважением, Андрей
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.