Category: it

Category was added automatically. Read all entries about "it".

Самораскрутка

"Загрузить компьютер" на английском звучит как "to boot a computer". Очень странное выражение - причем тут вообще ботинок (boot) ?

О, это интересная история.

Зачем вообще нужна загрузка?

Компьютеры могут исполнять только программы, находящиеся в оперативной памяти. Эта память полностью стирается при выключении питания. Поэтому, если включить машину, она девственно чиста и никаких программ в ней нет.

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

Но кто это может сделать? Загрузить программу в память может только другая программа - например, операционная система (ОС).

Но кто загрузит операционную систему? Ведь память совершенно пустая.

Какая-то программа-загрузчик? Но откуда загрузчик возьмется в пустой памяти?

Мы имеем классическую проблему яйца и курицы.

Как же ее решить?

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



Вот оператор и набирал таким образом небольшую программу, которая читала пачку перфокарт и грузила с них ОС.

Когда компьютеры стали распространенными, так не выкрутишься. Квалифицированных операторов на всех не хватит. Да и включаются машины гораздо чаще, чем старые монстры в шкафах, которые работали круглосуточно.

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

Поэтому к обычной перезаписываемой компьютерной памяти добавили небольшой блок постоянной памяти - которую никак нельзя изменить. В советской терминологии она называется ПЗУ - постоянно запоминающее устройство в отличие от ОЗУ - оперативного.

При включении компьютера программа, зашитая в ПЗУ, проверяет, все ли исправно - именно в этот момент по экрану бегут разные непонятные строки. А потом она тащит с диска загрузчик, записывает его в память и запускает.

Но не так все просто.

Загрузчик не может лежать в файлах на диске, потому что файлы обслуживаются ОС, а операционки бывают самые разные, и формат файловой системы у них может быть какой угодно. Маленький загрузчик в ПЗУ просто не может о них знать.

Поэтому на диске под загрузчик резервируется место за пределами файловой системы. Обычно это первый или последний сектор диска (на разных системах было по-разному).

Но в один сектор диска большую программу не засунешь. А для загрузки ОС надо сделать много чего - в том числе как-то разобрать ее файлы и взять оттуда ядро системы. Поэтому первичный загрузчик из первого сектора диска обычно грузит вторичный загрузчик, который тоже лежит где-то в условленном месте за пределами ФС. Вторичный загрузчик больше и сложнее, он уже может прочитать диск, найти файлы ОС и загрузить их в память.

Тем, кто придумывал эту схему, она показалась очень забавной - как будто кто-то пытается поднять сам себя за шнурки (как Мюнгхаузен сам себя поднял за волосы вместе с конем). И назвали они ее соответственно - bootstrapping loader, загрузчик, тянущий себя сам себя за шнурки ботинок. А весь процесс, соответственно, - to bootstrap a computer, что со временем сократилось до to boot.

Подведем итоги.

Как задача в конце концов была решена? Небольшой внешней помощью (ПЗУ) и многоступенчатым процессом, который поэтапно раскручивает сам себя.

Другой пример самораскрутки можно найти опять же в компьютере.

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

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

А что если написать компилятор на том же самом вашем мегаязыке? Это дает большие преимущества. Компилятор - большая и сложная программа, и в процессе ее сочинения весь язык подвергается исчерпывающему тестированию. Можно будет сразу понять, годится ли он на что-нибудь, и что надо поменять. Плюс не надо путаться с другими языками.

Решено, пишем компилятор Мегаязыка на Мегаязыке. Да, но как? Чтобы запустить такой компилятор и его скомпилировать, надо уже иметь такой скомпилированный компилятор.

Ну не так все печально.

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

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

Называется такая система, разумеется, bootstraping compiler.

И здесь идея та же самая - небольшая помощь со стороны и постепенное усложнение.

Но самый мощный пример самораскрутки, конечно, находится в сфере биологии.

Представьте: у вас есть 1 (одна) клетка, таких мизерных размеров, что ее видно только в микроскоп. И из нее вам нужно сделать большой жизнеспособный организм - который умеет дышать, бегать, жевать и все остальное.

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

Поэтому программа находится прямо в клетке. А еще клетка умеет делиться.

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

Поэтому клетки умеют еще помечать себя химическими метками - это заложено в их программу. А полная программа состоит из множества условий - ЕСЛИ слева от тебя находится клетка с меткой А, ЕСЛИ ты одна, ЕСЛИ ты находишься внизу и т.д.

И поэтому внутри всех клеток организма находится одна и та же программа, но каждая клетка выполняет только ее отдельные куски.

И тут ключевых условий два - помощь извне (которая у разных видов очень даже варьируется. Далеко не все животные вынашивают детенышей)  и постепенная раскрутка.

Если принцип удачный - он поможет в самых разных случаях.

(no subject)

Надеюсь, минские айтишники на аутсорсе тоже присоединятся к всенародной забастовке против тирана. Так заказчикам и напишут: сейчас мы должны выразить свою гражданскую позицию, нам не до мелких глупостей типа верстки ваших сайтов. Мы решаем судьбу нашей любимой страны. А заказы свои отдайте пока что индусам.

UTM

Сегодня для разнообразия будет научпоп.



Видите вот этого мокрого молодого человека? Мы разберем, что же на самом деле он придумал. Не в этот момент, который запечатлен на фотографии, а года через четыре, но тоже в неформальной обстановке, когда валялся на мягкой траве, растущей на лугах вокруг Кембриджа.

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

Но теоретики были перфекционистами. Какие еще бесконечно малые? Вы там берете величины, которые чему-то равны, смело их складывате и умножаете, а потом, когда надо, выкидываете из расчетов, дескать, они все равно малые и равны нулю. Так не пойдет. Или это числа, или нули.

Поэтому математики расчехлили чернильницы и в конце концов соорудили теорию пределов, которой и обосновали высшую математику.

Collapse )

Результат понравился и возникла естественная мысль: не замахнуться ли нам вообще на Вильяма нашего Шекспира? В смысле, а не обосновать ли вообще всю математику, начиная с арифметики? Тем более, примерно в это время изобрели математическую логику - булевы переменные, И, ИЛИ и все-такое.

И образец был, освященный временем. Геометрия, которую древнегреческий Евклид сформулировал очень любопытным методом: определил несколько недоказуемых аксиом, а все остальное логически вывел из них.

Collapse )

В результате скрещения этих трех идей: аксиоматического метода, идеи доказать основания математики и создания математической логики получилась такая программа:

А давайте правильно подберем логические аксиомы и из них выведем всю остальную математику, причем чисто механически, манипуляцией с символами, не вникая в их смысл!

Она получила название формализма, каковым и являлась. Видным ее представителем был Давид Гильберт.

С формализмом были согласны, разумеется, не все, но многие восприняли эти планы с энтузиазмом.

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

Снова заскрипели перья и поначалу все шло хорошо. Нашлись удобные аксиомы арифметики (система Пеано), были разработаны методы самой логики и Рассел с Уайтхедом через два тома, набитых формулами, начав с булевых операций, доказали в результате,что 1+1=2.

А потом все пошло не так. В 1931 году Курт Гёдель доказал, что если добавить к предикатной логике аксиомы арифметики, то получившаяся система окажется неполной. В ней будут такие теоремы, которые в рамках этой системы недоказуемы.

То есть, мечта Гильберта недостижима в принципе. Арифметику невозможно аксиоматизировать так, чтобы пользуясь системой аксиом, можно было доказать все верные теоремы - как в геометрии.

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

Как вы догадались, он был математиком.

Да, я же не сказал еще, как его звали. Алан Тьюринг.

Буквально через несколько месяцев тот же результат другим способом получил Чёрч. Но это уже не так интересно, потому что в работе Тьюринга, если вы не математик и не логик, основной интерес представляет не столько результат, сколько сам метод.

Тьюринг был одиночкой не только в жизни, но в математике. И поэтому его подход был очень необычным для того времени - хотя нам он кажется вполне естетственным. Но это только потому, что мы до сих пор едем по дороге, которую проложил Тьюринг.

Что такое механическое исчисление? Как его формализовать? Тьюринг представил процесс буквально: вот есть некоторая машина, которая может посчитать какое-нибудь число.

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

Итак, есть очень странная машина. Она состоит из очень-очень длинной ленты, поделенной на клеточки; головки чтения/записи, которая в данный момент смотрит на одну из клеточек, и может стереть из нее символ, или написать другой, и некоторого состояния. Это математическая машина, чисто воображаемая, лента у нее бесконечная, а работать она может, сколько хочет - хоть сто миллионов лет.

Дальше Тьюринг показывает, как на такой машине можно, допустим, выполнять сложение; как посчитать, чему равно 1/3; или еще сложнее - как считать квадратный корень из двух.

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

Как Тьюринг пришел к идее подобной машины? В ретроспекции это кажется несложным. Она просто имитирует человека, проводящего расчеты на бумаге, только сильно упрощает ситуацию, чтобы ее можно было рассмотреть математически. Вместо листка бумаги - бесконечная лента, по которой можно ездить взад и вперед; вместо пера - печатающая головка; ограниченность человеческой памяти заменяется одной-единственной текущей клеточкой; возможность делать промежуточные заметки сводится ко всей той же ленте, только другим символам на ней; а неопределенные "состояния ума" имитируются простыми состояниями машины, которые можно свести к длинным таблицам "в состоянии А, если видишь символ точки, сдвинься на клетку вправо, нарисуй там крестик и перейди в состояние Б".

Кроме того, мысль, что люди - это всего лишь очень сложные машины, и машины рано или поздно смогут делать то же, что люди, похоже, занимала Тьюринга постоянно. И последняя его работа была на все ту же тему: "Может ли машина мыслить". Именно в ней он предложил знаменитый тест - можете ли вы отличить машину от человека, просто задавая ей вопросы. Если не можете - то никакой разницы нет.

Если честно, попытка представить вычисления в виде действий некой машины была хоть и оригинальной, но не очень сложной. Например, до Тьюринга к тому же независимо пришел другой математик - Эмиль Пост, предложивший свою версию машины.

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

Этот хитрый девайс и называется Универсальной машиной Тьюринга.

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

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

Компьютер, по-современному. Все современные компьютеры и есть такие универсальные машины. Более того, ни один из них не круче Универсальной машины Тьюринг: что могут вычислить они, в принципе, может и она - только гораздо дольше.

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

Увы, так устроен наш мир, поэтому если ваш компьютер глючит, не колотите его кулаком и не поминайте маму Билла Гейтса. Ошибки в программе можно узнать, только запустив ее. Заранее - нельзя.

Додумался ли бы кто-то до идеи компьютера без Тьюринга? Да, конечно. Примерно в это же время немецкий инженер Конрад Цузе, далекий от математических высот, строил цифровую машину прямо у себя дома. И вряд ли он был один. Когда приходит время идеи, эта идея приходит в голову сразу многим людям.

Но это ничуть не умаляет заслуг Тьюринга. Он был одним из первых, в том числе в мире нового раздела математики - теории вычислимости.

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

А что касается той идеи Гильберта, с которой все началось, то нам, живущим в информационном мире, теперь очень легко понять, что она была нерабочей.

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

Так не бывает.
cat-in-the-box

Бесполезная информация

В школе я учил информатику - тогда только ввели ее курс, и в ее рамках мы писали программы на некоем языке программирования с русскими служебными словами. Еще тогда у меня появился вопрос: почему в этом языке присваивание обозначается так странно - ":=", то есть двоеточием и равно. В других языках просто "равно" (я знал про Си). Ну, допустим, язык придумывали математики, а у них нездоровая чувствительность и они считают, что присваивание - это не равенство. Ладно. Но при чем тут двоеточие?

Затем оказалось, что так же точно присваивание пишется в Паскале и его потомках. В современных языках ему тоже нашлось применение, например, в Перле 6 с двоеточием "привязка", а без - простое присваивание. В Го тоже есть какие-то правила на этот счет.

Вообще на такие вопросы отвечать сложно - символы могли быть выбраны когда-то кем-то по каким-то соображениям, а потом просто становятся традицией, которую копируют не задумываясь. Кто сейчас знает, что символ "равно" изображает параллельные прямые, потому что по замыслу автора ничего равнее их быть не может?

Впрочем, иногда в древних книгах можно найти ответы.

Итак, про двоеточие - равно.

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

Через тридцать лет, правда, выяснилось, что все наоборот. Компьютеры и правда окружают со всех сторон, но уже никто ничего не читает, не говоря уже о программировании. И то, и другое стало уделом профессионалов.

Ершов был одним из пионеров программирования в СССР, входил в комитет по созданию языка Алгол и разрабатывал для него компилятор. Соответственно, язык, который он поместил в школьную программу, был сильно урезанной версией все того же Алгола с русскими словами. Остряки именовали его Ершол или РАЯ (русский алгоритмический язык).

Следовательно, двоеточие-равно пришло из Алгола, и оттуда же попало в Паскаль, который был его непосредственным потомком. Но как оно появилось в Алголе?

Алгол задумывался как международный универсальный язык, понятный всем в мире - его первоначальное название вообще было IAL - Internattional Algorithmic Language. Разрабатывала его группа специалистов из разных стран мира, а где группа - там и свары, и компромиссы.

Исходно присваивание в Алголе было правым и обозначалось вполне логичной стрелкой:

5 => A

Затем решили, что на некоторых устройства ввода и вывода нету знака "больше" (не забывайте, это были пятидесятые!), поэтому для убогих перфораторов знак упростили: равно и двоеточие, как некий намек на стрелку:

5 =: А

Потом начались разногласия между американцами и европейцами. Американцы, скорее всего под влиянием Фортрана, настаивали на левом присваивании и в конце концов  убедили комитет.

Так и родилось пресловутое

А := 5
cat-in-the-box

Ответ на загадку

Загадки сейчас загадывать неинтересно - ответ элементарно гуглится. И на эту загадку ответ легко найти в Википедии.

Впрочем, многие предположили правильно. Шестнадцатеричные цифры обозначались обычными арабскими, только выделялись особым образом. Конкретно - над ними рисовали сверху черту. На картинке - пример кодов.



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

Пример программы взят из интересной брошюры Кнута (того самого!) и Пардо "Раннее развитие языков программирования". Очень интересная вещь, если интересуетесь компьютерной археологией.

В книжке описано штук двадцать разных языков, придуманных в 40-50-е годы, сочиненных разными людьми и в разных местах. Языки по нашим меркам очень примитивные - арифметические расчеты, максимум с массивами и циклами.

Но что сразу бросается в глаза - все они выглядят крайне странно, если не сказать дико, и практически не поддаются прочтению. Кроме, разве что Фортрана I, который хоть и архаичен, но вменяем, и еще парочки других, где что-то знакомое прослеживается. Все остальное - невразумительные наборы загадочных символов, временами на каких-то вообще инопланетных принципах вроде языка, придуманного Хаскеллом Карри (тоже тем самым).

Понятно, что ни принципы, ни терминология тогда еще не устоялись, о лучших практиках никто не слыхал, набирать было сложно, поэтому старались писать покороче, но даже это не объясняет почти полную нечитаемость.

Думаю, что основных ее причин три. Во-первых, занимались программированием тогда одни математики, а их мышление весьма своеобразно, да и математическая нотация никогда не оптимизировалась для удобства чтения. Во-вторых, математики нередко скатывались в заумь, пытаясь выразить программистские понятия знакомыми методами - а программирование к математике все-таки не так уж и близко. Но даже это не объясняет, почему далеко не все пользовались хотя бы обкатанной и всем известной нотацией для арифметических выражений. Похоже, что занимались этим делом гении или кто-то близкий к ним, и каждый из них на ходу придумывал собственную запись, удобную лишь для себя, которая затем никак не подвергалась использованию массой других людей - опять же, кроме Фортрана и предшественников Кобола.
cat-in-the-box

Загадка

Программисты часто используют шестнадцатеричную систему счисления. В ней 16 "цифр" - в обычной записи от 0 до 15. Арабских цифр всего десять, поэтому оставшиеся надо обозначать как-то иначе. Отдельных значков почему-то никто придумывать для них не стал. Американские программисты не заморачивались и просто обозначили недостающее буквами: А = 10, В = 11 и так далее до F.

Советские программисты 50-х сделали еще проще. Как именно?

P.S. Вопрос не по программированию, а скорее по изобретению знаковых систем вроде письменности.
manx

Google Translate

Один ученый как-то сказал, что современные люди, пользующиеся современной же техникой, похожи на корову: та тоже не разбирается в ботанике, хоть траву и жует.

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

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

Например, не раз я читал полемику, желающую показать превосходство русского языка над языком Х: в Google Translate вводится нечто, потом смотрят перевод и осмеивают убогость языка Х, где Х - обычно или украинский, или английский. Именно они обычно зудят у российского патриота. Впрочем, не исключено, что патриоты других языков пробавляются тем же.

Как технарю мне больно смотреть на эту деградацию мышления. Поэтому я напишу небольшой ликбез.

Машинный перевод - занятие древнее, ему уже не меньше семидесяти лет. Он должен был стать одной из первых функций "электронных мозгов". Немало было обещаний на эту тему, угрохали туда миллионы, в процессе узнали много нового о языке, только никакого перевода так и не получилось.

То ли задача оказалась намного сложней, чем казалось, то ли подход к ней выбрали неправильный, хотя он казался естественным: сделать большой словарь, в котором сопоставить слова одного языка словам другого; разобрать предложение грамматически и получить в результате его "смысл", потом этот смысл оформить по правилам другого языка и подставить нужные слова.

Это не работает.

Как выяснилось, естественные языки:

а) не логичны
б) не имеют четкой однозначной грамматики
в) полны двусмысленностей
г) и пропусков в высказываниях

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

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

В общем, до создания такого компьютера еще явно годы.

Как же тогда работает Google Translate? Ведь каждый может его опробовать и убедиться, что тот переводит и переводит правильно.

А он работает совсем не так. Он вообще ничего не понимает.

В какой-то фантастической книжке был персонаж, который, якобы, вообще не знал языка. Вместо этого у него была хорошая память. Он просто помнил огромный список фраз, которые ему могут сказать, и ответы на них. И при этом не понимал ничего.

Как ни странно, Гугл Транслейт примерно так и работает. Программисты Гугла просто взяли огромный массив одинаковых текстов, изложенных на двух языках одновременно, - в основном, это были документы ООН, накопившиеся за время ее существования; документы Евросоюза, которые ведутся одновременно на 24 официальных языках; детективы, переведенные с английского на французский и т.п.

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

И это работает, потому что люди очень часто говорят  об одном и том же, и нередко одними и теми же словами.

Но работает не всегда и не везде. Гугл Транслейт хорошо переводит между теми языками и текстами того типа, на которых натренировался. Например, документы по международному праву между русским и английским. Есть какая-то ирония в том, что хорошее качество перевода на русский - это несомненная заслуга товарища Сталина.

А между теми языками, где не существовало переводческого материала, например, между исландским и вьетнамским, он вовсе не переводит. Просто перекидывает с исландского на английский, а с английского на вьетнамский.

Качество перевода сильно разнится. Иногда Транслейт выдает откровенную ерунду, поэтому пользоваться им можно, если только хорошо знаешь целевой язык, и способен отличить глупость от чего-то осмысленного.

И, разумеется, Гугл для перевода художественных текстов вообще не предназначен. Чем более текст художественен, тем более он уникален, тем меньше материала есть в нем для базы Гугла.

Ну и ждать, что Гугл идеально переведет любую фразу с сохранением смысла, как-то очень наивно. Переведет как умеет - вплоть до нечитаемой чуши. И судить по его переводам о целевом языке так же странно, как посмотрев на картинку на мониторе удивляться, что Альпы плоские и помещаются на столе.
manx

Аналогия

Все человеческие языки более-менее эквивалентны друг другу, и написанное на одном может быть переведено на другой. То есть, языки в принципе взаимозаменяемы и ни один из них не имеет выделенного положения. Нет какого-то Суперязыка, на котором можно выразить некий единый и правильный Смысл. Можно до одурения ходить по кругу между языками, каждый раз теряя кусочек смысла, но эти блуждания не выводят за пределы одного и того же эквивалентного языка.

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

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

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

На этом месте надо написать мораль, но я ее не знаю. Есть только какая-то смутная мысль, что и Смысл, и Стоимость - это не объект, а что-то совсем другое. Может быть, отношение, может еще какая информационная сущность, но не объект, и поэтому попытки понять их как объект до сих пор не были успешными.
manx

(no subject)

...Суд приговорил Алана Тьюринга к приему женских гормонов. Через полгода от таблеток у него выросли груди и бедра, побелели волосы, а вместо математики Алан стал интересоваться в основном парнями и тряпками. Он бросил университет и пошел работать фотомоделью в рекламу нейлоновых чулков и обуви на высоких каблуках.

И потому в мире так и не появился коспьютер.