[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: шрифты, dia и другие (что же такое программа?)





Fedor Zuev wrote:
On Wed, 4 Dec 2002, Victor Wagner wrote:

VW>On 2002.12.04 at 03:06:11 +0800, Fedor Zuev wrote:

VW>А чем тебе набор описаний кривых (команды), предназначенных для
VW>рисования определенных символов в определенном начертании
VW>(определенный результат) не удовлетворяет этому определению.

	Приняв такой подход - мы любой текст должны будем признать
программой. Ведь это описание последовательности символов,
вываодимых на экран. А уж письмо со хидерами.... :-)

	Думаю, что ни законодатель, ни сколь-нибудь вменяемый суд
не примут столь расширительного толкования понятия программы.

VW>Скажи t1disasm на любой pfa-шрифт и почитай, что получилось. Если
VW>это не программа, то я не программист.

	Это глюки. Там таким образом подобраны мнемоники, чтобы
казалось, будто описания символов написаны на PostScript-е. Это
неправда. Там достаточно примитивный векторный формат и не более
того. Более того - "команды" там имеют вообще не тот смысл, что в
постскрипте. Произвольную PostScript программу туда не запишешь.
Процедуры на PostScript-е в Type1-шрифте могут присутствовать лишь в
строго определенных местах - и у 90-95% шрифтов эти места либо
пусты, либо содержат совершенно стандартный код (в смысле -
cut'n'paste из описания type1-формата).

	Вы ведь не будете настаивать на том что программами являются
файлы jpeg или mp3? А ведь там формат посложнее будет.



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

Любой файл, даже элементарный текст, как я считаю, можно на соотвествующем уровне абстрагирования считать программой, так как он содержит в себе в любом случае лишь команды для программы более низкого уровня.

Другое дело, что, согласно практике и традиции, существуют определенные рамки того, что можно называть программой, а что необходимо считать файлами данных для программы. Впрочем, тут необходимо считаться с принципом относительности: для скрипта на Perl-е какой-нибудь текстовый файл будет лишь файлом данных, а сам скрипт - собственно, программой. Но на уровне интерпретатора Perl'a, скрипт на Perl-е - это уже файл данных для интерпретатора, "фактически" (и это условно) выполняющего все операции. На уровне же системы вцелом, ядро уже выступает в качестве программы, а интепретатор Perl-а, точнее, его бинарник, выступает в роли того самого "файла данных". То есть имеет смысл уточнять, на каком уровне данный файл можно считать набором команд, то есть программой, а на каком - набором каких-то данных. Кстати, само ядро (например, Линукса) также является лишь файлом данных, находящимся в памяти и, частично, на жестком диске, в модулях, для программы более низкого уровня - BIOS. А BIOS... Впрочем, знатоки наверняка подскажут, что загружает BIOS и передает ему управление компьютером. Но скорее всего, это уже самая высшая точка.

А вот тот скрипт может на самом деле быть не просто скриптом, а, скажем, интерпретатором какого-то макроязыка, и, теоретически, путь таких "надстроек" бесконечен.

Из всего этого я могу сделать несложный вывод: все форматы, которые вы, Виктор и Федор, перечисляли можно на определенном уровне назвать программой, а на более низком уровне - файлом данных. Да, даже JPEG, и GIF, и PNG, и PostScript, и XML, и MPEG! :-) Хотите - верьте, хотите - нет. :-)

--
Andrei Sosnin
http://zzx.ath.cx

 <!-- : it all depends on your vision : -->



Reply to: