July 14th, 2005

Слова и словари

 

 

То, что написано ниже, все знают. Однако оно написано, поскольку знают не все.

 

Происходили споры между несвязанной группой товарищей. Споры упирались в недопонимание понятия «язык» (как способ коммуникации между людьми) и роли словарей по отношению к языку и его носителям.

Суть утверждений недопонимающей стороны сводилось к следующему:

 

1. Словарь описывает значения слов.

2. Словарь описывает все допустимые значения всех слов.

3. Употребляющий слова не по назначению языка не знает.

 

Прежде всего, следует отметить, что значение слова в общем случае не поддается формулировке. Поддается только в особых случаях, о которых речь пойдет ниже. Любому языку присуща некая «размытость». Присуща она неслучайно – она позволяет существенно экономить время и силы в передаче того, чего человек собственно пытается передать. Легче всего понять это на примерах литературного творчества. Скажем, поэт нам говорит:

 

Ночь тиха, пустыня внемлет  богу.

 

Если пользоваться логикой недопонимающих товарищей, то поэт с русским языком не в ладах. Во-первых, ночь не может быть «тихой». Тихим может быть только звук или нечто его издающее. Сама по себе ночь издавать не может, поскольку является лишь временем суток. В свою очередь, пустыня не может никому «внимать». У нее нет разума, а это – обязательный атрибут «внемления». Однако читатели почему-то автора понимают. Странно, не правда ли?

Collapse )

(no subject)

 

 

Возникла необходимость узнать мнение народа. Вопрос следующий:

 

Какие должны сложиться условия, чтобы вы согласились воевать против России вместе с напавшим на нее государством.

 

Условия могут быть самыми разными: от «за тридцать серебрянников» до «невыонсимый моральный климат, полное презрение властей к нуждам народа». Другое государство точно так же можно рассматривать в качестве условий. Например, «если Шварцнеггер станет президентом и поведет против России американцев, одетых в костюмы Бэтмена».

 

 

 

(no subject)

 

 

Задача для C++ программеров. Решение ее мне в свое время доставило много интересных часов.

 

Требуется: механизм подписки, удовлетворяющий следующим условиям:

 

1.             Объект-подписчик не должен в обязательном порядке наследоваться от какого-либо класса.

2.             Объекту-нотификатору достаточно один раз унаследоваться от базового класса, чтобы реализовать произвольное число событий подписки.

3.             Подписка должна выполняться следующим образом: нотификатору при подписке передается идентификатор события и указатель на функцию, которую следует вызвать при происхождении события с этим идентификатором.

4.             Передаваемая функция является имеет произвольный тип параметра. Заранее он неизвестен. Объект-нотификатор должен быть реализован так, чтобы принимать при подписке указатель на любую функцию с любым параметром. Имя функции также может быть произвольным (то есть, в базовом объекте оно не должно быть жестко задано).

5.             При нотификации о событии, нотификатор (наследник базового объекта) передает также значение параметра функции. Возможен вызов функций с разными типами параметров при одном и тот же идентификаторе.

6.             Ни подписчик, ни нотификатор не должны использовать в явном виде преобразование типов. То есть, все преобразования должны быть сокрыты в базовом классе.

 

Задача имеет решение. Решение сложное. Но практика реализации просто бесценна – после решения этой задачи никаких проблем с шаблонами никогда больше не будет.

 

 

Только что осознал

 

 

Закон обратной пропорциональности:

 

Чем более подробно будет сформулирована концепция, тем меньше она найдет сторонников.