четверг, 2 декабря 2010 г.

Задача автоматического поиска дефекта в программе

Программы содержат ошибки, это факт. И от ошибок надо избавляться. Вот только весь вопрос в том, как и какими средствами. В данной задаче речь идет об автоматическом поиске входных данных данной программы (куда включается в том числе состояние среды, в которой работает программа), при запуске на которых программа "упадет". Можно рассматривать частный случай этой задачи: есть одна функция (с публичным доступом), требуется автоматически определить входные данные функции, на которых она "упадет".

Сложность:
вычислительная сложность (перебор всех входных данных)

Задача автоматического распараллеливания последовательных программ

Есть такая светлая идея, что последовательный алгоритм может быть эффективно распараллелен. Конечно, речь идет о специальных параллельных архитектурах и о специальном классе последовательных алгоритмов. Задача состоит в том, чтобы выделить такие классы программ и архитектур и предложить методы автоматического распараллеливания.

Сложность:
сложность постановки задачи,
вычислительная сложность

Проверка корректности самоизменяющихся программ

Задача состоит в том, чтобы по данной программе (возможно, лишь в бинарном виде) определить:
1) портит ли она "полезные" данные (т.е. есть данные, которые она портить не должна)
2) передает ли она несанкционированным образом третьей стороне какие-либо данные

Примеры самоизменяющихся программ: вирусы

Синонимы: "полиморфный" код (то же, что и самоизменяющийся)

Сложность:
сложность постановки задачи (неточно сформулировано то, что надо проверять),
вычислительная сложность (проанализировать все пути выполнения)

среда, 23 июня 2010 г.

Eclipse 3.6

is released !

and crash is occured in my Ubuntu Lucid !
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xb7807f2d, pid=27481, tid=3077183168
#
# JRE version: 6.0_18-b18
# Java VM: OpenJDK Client VM (14.0-b16 mixed mode, sharing linux-x86 )
# Derivative: IcedTea6 1.8
# Distribution: Ubuntu lucid (development branch), package 6b18-1.8-0ubuntu1
# Problematic frame:
# C  [libpthread.so.0+0x7f2d]  pthread_mutex_lock+0x1d
#
# An error report file with more information is saved as:
# /tmp/hs_err_pid27481.log
#
# If you would like to submit a bug report, please include
# instructions how to reproduce the bug and visit:
#   https://bugs.launchpad.net/ubuntu/+source/openjdk-6/
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

another crash:
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xb76c3f2d, pid=28752, tid=3075856064
#
# JRE version: 6.0_20-b02
# Java VM: Java HotSpot(TM) Client VM (16.3-b01 mixed mode, sharing linux-x86 )
# Problematic frame:
# C  [libpthread.so.0+0x7f2d]  pthread_mutex_lock+0x1d
#
# An error report file with more information is saved as:
# /home/kornevgen/hs_err_pid28752.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

Solution:
My Ubuntu had xulrunner-1.9.1 and xulrunner-1.9.2 simultaniously. Solution is removing xulrunner-1.9.1 :)

четверг, 11 июня 2009 г.

Философия прототипа

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

А уже опосля, когда будет принято утвердительное решение о реализации, выделены ресурсы (время, деньги, люди) и уточнены требования, тогда уже можно браться за серьезное программирование.