yms: (Default)
[personal profile] yms
Абстракция потенциальной бесконечности применительно к программированию: в любой сколь угодно отлаженной программе есть хотя бы один баг.

Date: 2005-08-30 11:35 am (UTC)
From: [identity profile] reznik.livejournal.com
Да-да. Каждая последняя ошибка на самом деле является предпоследней.

Date: 2005-08-30 11:46 am (UTC)
From: [identity profile] grzegorzrus.livejournal.com
Есть более продвинутый вариант -
1) в любой программе есть как минимум одна ошибка,
2) любую программу можно сократить на один байт.

Вывод -
любая программа эквивалентна одной неработающей инструкции...

(2) не верно

Date: 2005-08-30 11:58 am (UTC)
From: [identity profile] d0tcom.livejournal.com
опровергающий пример (текст несокращаемой программы):
int 20h;

Re: (2) не верно

Date: 2005-08-30 12:05 pm (UTC)
From: [identity profile] yms.livejournal.com
Не опровергающий, а подтверждающий. Int - запрещенная инструкция и немедленно вызовет ексепшн. Вот она, как минимум одна ошибка.

Уточняю

Date: 2005-08-30 12:10 pm (UTC)
From: [identity profile] d0tcom.livejournal.com
Это был пример на ассемблере (заголовки я забыл, чтобы сразу получился ком-файл, что-то вроде org 100h) для ДОС
К сожалению, под винду я на ассемблере не писал и поэтому не знаю, как выйти минималистким образом из программы, очевидно, что код Си main(){} создаст не самый маленький загружаемый модуль, а в досе нельзя написать просто 90h или программу нулевой длины, обязательно должен быть выход. Выход по 20 прерыванию самый короткий (можно ведь и фар джампы использовать).

Re: Уточняю

Date: 2005-08-30 12:24 pm (UTC)
From: [identity profile] yms.livejournal.com
Я в курсе, но времена ДОС давно прошли. Впрочем, самый короткий выход - по инструкции RET (1 байт), и вполне может быть, что это справедливо и для Win32.

я ж говорю

Date: 2005-08-30 12:41 pm (UTC)
From: [identity profile] d0tcom.livejournal.com
есть последний байт, который сократить нельзя
мне почему-то казалось что int 20h влезет в один байт, но подумав, что прерываний как раз на байт...
так что Ваш пример как раз тот, что я имел в виду

На до же

Date: 2005-08-30 12:51 pm (UTC)
From: [identity profile] d0tcom.livejournal.com
я сделал a.com длиной в 1 байт и содержимым 90h -- работает! А нулевой длины ругается, что не является приложением WIn32.

Re: На до же

Date: 2005-08-30 01:20 pm (UTC)
From: [identity profile] yms.livejournal.com
А что он должен, подвешивать машину? :))
Тут любая ерунда так "заработает", это ж не дос...

любая ерунда

Date: 2005-08-30 01:25 pm (UTC)
From: [identity profile] d0tcom.livejournal.com
таки вызывает эксепшн, например, 20хекс (пробел)

Re: любая ерунда

Date: 2005-08-30 02:11 pm (UTC)
From: [identity profile] yms.livejournal.com
У меня ничего не вызывает...

Date: 2005-08-30 12:13 pm (UTC)
From: [identity profile] maksa.livejournal.com
Помнится, был у меня двухбайтовый com-файл с содержимым EA FF. Работал просто замечательно.

сделайте файл с

Date: 2005-08-30 12:59 pm (UTC)
From: [identity profile] d0tcom.livejournal.com
содержимым 32h (попросту цифра 2 в текстовом редакторе) -- один байт и работает!
Только что?

Date: 2005-08-30 08:50 pm (UTC)
From: [identity profile] runtime.livejournal.com
Это так называемое реальное программирование. Берется некоторое представление произвольного вещественного числа и записывается в качестве кода программы. В некоторых случаях, например для pi, может потребоваться кодогенератор. Для конкретной архитектуры можно говорить о разнообразных свойствах вещественных чисел. Класс чисел, которые являются недопустимыми на первом прогоне. Числа, которые вызывают исключение через некоторое время. Числа, которые никогда не вызывают исключения (завершение программы считается исключительной ситуацией времени выполнения). Числа, которые печатают на экране число 2 и т.п.

и т.п.

Date: 2005-08-31 07:04 am (UTC)
From: [identity profile] d0tcom.livejournal.com
а есть ли числа, которые печатают Войну и Мир?

и т.д.

Date: 2005-08-31 09:27 am (UTC)
From: [identity profile] runtime.livejournal.com
Содержание текста не имеет значения большего, чем последовательность букв.

Ну почему

Date: 2005-08-31 09:31 am (UTC)
From: [identity profile] d0tcom.livejournal.com
ведь любую программу можно удлинить безотносительно к её работоспособности
просто добавлять в конце пробелы или точки

Date: 2005-08-30 12:45 pm (UTC)
From: [identity profile] ziegel.livejournal.com
я видел программы, не содержащие ни одного исполняемого байта (заголовки для загрузчика не в счет). Драйвер коврика мыши, например. Или ruki.sys для OS/2. И что же? Работали они с ошибками!

Profile

yms: (Default)
Michael Yutsis

March 2022

S M T W T F S
  12 345
678910 1112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 24th, 2026 09:49 am
Powered by Dreamwidth Studios