Re[8]: Заметка: Язык программирования
От: AlexCab LinkedIn
Дата: 04.07.12 12:45
Оценка:
Здравствуйте, DarkGray, Вы писали:
AC>>В общем что я имею виду, вы, имхо, присваиваете понятию "символ" большой смысл чем просто "графическое обозначение", как буква например или символ "=". Я считаю символ отдельным м. объектом(образом, в вашей терм.), со своими свойствами(в том числе и операциями). Символ, как и слово(синтаксис), просто обозначает некоторый другой м. объект(семантика).
DG>между символом и образом я провожу следующую важную границу:
DG>- символ — задает четкое множество (есть строгий критерий, который фиксирует чем является символ, и какое множество объектов он задаёт),
В общем то да, плюс этот критерий(связь) для некоторых символов(в особенности математических) может меняться от контекста к контексту.

DG>образ — задает нечеткое множество (отсутствует строгий критерий)

Если "нечёткое множество" это то, в которое объект входит/невходи с некоторой вероятностью, то не совсем согласен.
Если рассматривать образ как абстрактное(общее/среднестатистическое для многих людей) понятие, то это так. Но если расматирывать его как конкретный образ конкретного человека(в контексте модели мышления), то он задаёт вполне четкое множество.

DG>CЧайник определяет строгое множество объектов, которые являются CЧайник-ом.

ООП класс(идентифицируемый символом "CЧайник") используется только для конструирования объектов, определяет сторогое множество объектов которые могут быть сконструированы с его помощью.
Сам класс "CЧайник" конструируется программистом, методом композиции(задания) свойств:
"CЧайник"(класс) => "метод "нагревать воду" + свойство "некоторый цвет" + метод "взять в руки" + ..."

DG>Образ Чайник не имеет такого строгого критерия.

Вполне имеет:
Абстрактный образ "Чайник"(идентифицируемый символом "чайник"), также может использоваться для конструирования объектов(дизайнерами чайников, например), в этом случае он также определяет строгое множество объектов(если дизайнер чайников выйдет за рамки образа(его собственного представления "что такое чайник") то это уже не будет чайник(с другой стороны дизайнер может сконструировать НЕХ и назвать это "чайник", но это уже будет случай неоднозначности, когда значение слова зависит от контекста)).
Ещё образ используется для распознавания, в этом случае он тагже определяет строгое множество обектов, состоящее из трёх подмножеств "это чайник"(свойства совпадают) "это не чайник"(свойства не совпадают) "возможно это (не) чайник"(свойства частично совпадают). К какому из подмножеств будет отнесён конкретный объект зависит от состояния образа "Чайник", конкретного человека в конкретный момент времени.

Образы динамичны, т.е. изменяются со временем(при обдумывании).
Пример создания образа "Чайник"(конструируется методом обобщения свойств):
1.Увидели объект с набором свойств ""нагревает воду" + "чёрный" + "можно взять в руки" + ..." => узнали что он называется "Чайник"
2.Увидели объект с набором свойств ""нагревает воду" + "белый" + "можно взять в руки" + ..." => узнали что он тоже называется "Чайник"/распознали по ключевым свойствам(для распознавания по ключевым свойствам нужно уже иметь некоторый, достаточный опыт, чтобы собственно их выделить) => обобщили(цвет не важен) ""нагревает воду" + "какой-то цвет" + "можно взять в руки" + ..."
3....
Так образ становится всё более абстрактным, до тех пор пока абстрактное представление(аб. образ "Чайник"), не начинает покрывать все формальные объекты(все виды и типы чайников) с которыми встресался человек.

DG>Если на этом изображение первое слово "эквивалентность" заменить на словосочетание "переформулирование через четкие множества, для того, чтобы можно было применить математику", то я согласен.

Как вы себе это представляете?
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
Re[9]: Заметка: Язык программирования
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 05.07.12 05:03
Оценка:
AC>Если рассматривать образ как абстрактное(общее/среднестатистическое для многих людей) понятие, то это так. Но если расматирывать его как конкретный образ конкретного человека(в контексте модели мышления), то он задаёт вполне четкое множество.

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

AC>Образы динамичны, т.е. изменяются со временем(при обдумывании).


это отчасти подтверждает мой тезис, что образы нечеткие.
Меняются в зависимости от контекста, меняются от точки рассмотрения и т.д.


DG>>Если на этом изображение первое слово "эквивалентность" заменить на словосочетание "переформулирование через четкие множества, для того, чтобы можно было применить математику", то я согласен.

AC>Как вы себе это представляете?

"это" — что в данном случае подразумевает?
Re[10]: Заметка: Язык программирования
От: AlexCab LinkedIn
Дата: 05.07.12 07:46
Оценка:
Здравствуйте, DarkGray, Вы писали:
AC>>Если рассматривать образ как абстрактное(общее/среднестатистическое для многих людей) понятие, то это так. Но если расматирывать его как конкретный образ конкретного человека(в контексте модели мышления), то он задаёт вполне четкое множество.
DG>напиши, пожалуйста, список достаточных и необходимых условий для твоего образа Чайник
Ключевые свойства: 1-есть некоторая ёмкость для воды, 2-есть некоторый "встроеный" источник тепла подогревающий воду, 3-алгоритм использования "набрать воды -> нагреть до кипения"
Любой не изветный объект, встретившийся мне и имеющий эти свойства будет класифицирован как некоторая разновидность чайника.
Думаю люди не встречавшиеся с промышлеными "устройство для преготовления кипячёной воды" и именуемыми в народе также чайниками, дополнитетьно учитывали бы характерную форму(ручка, носик etc.) и габариты.

AC>>Образы динамичны, т.е. изменяются со временем(при обдумывании).

DG>это отчасти подтверждает мой тезис, что образы нечеткие.
Конечно, если рассматривать в отрыве от текущего контекста.
Например в контексте отношения к человеку "чайник" == "старающийся новичок", "чайник" в контексте соционики это (внезапно, теперь хоть буду знать чем занимаюсь ) "эталонный объект для иллюстрации аспектов".

DG>>>Если на этом изображение первое слово "эквивалентность" заменить на словосочетание "переформулирование через четкие множества, для того, чтобы можно было применить математику", то я согласен.

AC>>Как вы себе это представляете?
DG>"это" — что в данном случае подразумевает?
Процесс переформулирования.
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
Re: Заметка: Язык программирования
От: maxkar  
Дата: 05.07.12 14:18
Оценка: 1 (1)
Здравствуйте, AlexCab, Вы писали:

AC>Мнения, особенно замечания и конструктивная критика, приветствуются!

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

Правильная история открытий и изобретений в нашем контексте следующая:
1. Изобретение абстракции числа (не 5 конкретных булок, а просто "5"). В IT именно на этом уровне работали первые вычислители (сумматоры, счетные машины).
2. Изобретение "абстрактной записи". Это на самом деле огромное достижение, без которого математика развивалась бы гораздо медленнее. До этого в математических трактатах так и было по всему тексту (пользуясь веткой из обсуждения) "единица деленная на объем воды, вытекающей из трубы бассейна". Замена "объема воды..." на z (ну и + математические символы) позволила сократить математические тексты и сделать их более сконцентрированными на задаче. В IT это появление "ассемблеров высокого уровня" — C и т.п., которые абстрагируются от "конкретики" и позволяют "кратко" записать какие-то вещи.
3. Развитие "алгебры" как отдельной области математики. В данном случае я под "алгеброй" имею в виду любые символьные вычисления и преобразования. Вроде a + b + e = a + c + e => b = c. Для применения подобных преобразований нужно накладывать определенные ограничения на сами элементы и операции. Преобразование выше накладывает определенные ограничения на оператор "+". Попытки использовать обобщенные алгоритмы (работающие в обобщенных терминах) в IT, потребовали механизмов описания тех самых ограничений. Сейчас таким механизмом являются системы типов. Отношение is-a как раз и задает возможность использовать обобщенные алгоритмы. Отсюда и OOP (в первую очередь — обобщенные алгоритмы) с его отношением наследования.

Вот примерно на этом этапе сейчас и находится IT. Пока нет языков, которые в выразительной можности приближаются к классической "алгебре". И причина простая — наличие "двух" языков/алгебр. Один — для общей системы выполнения. Второй — системы типов. Пока они будут отличаться, не получится использовать многие алгебраические разработки. Например, группа над целыми числами может быть определена двумя способами (по сложению и по умножению). И я хочу выражать в коде как общий тип "Group<S, Op>". И вот при этом мне не хватает выразительных способностей для описания Group<Int, +> и Group<Int, *> на уровне типа. Т.е. нужно уметь параметризовывать типы любыми значениями языка. В том числе — функциями. Здесь еще много проблем, но тема интересная. Хочу язык с first-class types.

А дальше может быть что-нибудь еще более интересное. В математике, например, был изобретен предельный переход, что дало возомжность для создания еще нескольких областей математики.
Re: Заметка: Язык программирования
От: maxkar  
Дата: 05.07.12 15:29
Оценка: 2 (1)
Здравствуйте, AlexCab, Вы писали:

AC>Мнения, особенно замечания и конструктивная критика, приветствуются!


Пройдусь по некоторым фактическим ошибкам.

Суть математического представления в том чтобы "оцифровать" свойства реального объекта, т.е. представить их в виде численного отношения к некоторому эталону, ...

Нет. Не в виде эталона, а в виде какой-то "стандартной" модели. Стандартной в том смысле, что она одинаково понимается другими математиками. Та же "классическая" геометрия в превую очередь работает со свойствами объектов, а не с числами (с числами работает аналитическая геометрия).

В контексте "ООП..."

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

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

а при использовании более высокоуровневого ЯП об этих условностях можно забыть и считать что программный объект это (почти) точное отражение мысленного.

А какой из языков позволяет переносить объекты отдельно от отношений между объектами? Без возможности переносить объекты и отношения отельно, приблизить языки к мысленной форме будет сложно. Ну а вторая задача — учет контекста объекта. Вы про нее не упомянули, но за одним символом в зависимости от контекста могут скрываться "разные" объекты. Вручную устранять такую неоднозначность — кошмар. Автоматически — возможны сложные трудноуловимые баги.

Большинство людей мыслят словами, это более экономично/эффективно по сравнению с мышлением образами.

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

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

Да, вот собственно оно и есть. Противоречие с предыдущим пунктом.

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

Это да. Но с другой стороны, такой подход может скрывать слишком много деталей и его использование для ряда задач будет невозможным. Здесь нужен баланс между "специализированностью" и "широтой".
Re[11]: Заметка: Язык программирования
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 06.07.12 07:43
Оценка:
DG>>напиши, пожалуйста, список достаточных и необходимых условий для твоего образа Чайник
AC>Ключевые свойства: 1-есть некоторая ёмкость для воды, 2-есть некоторый "встроеный" источник тепла подогревающий воду, 3-алгоритм использования "набрать воды -> нагреть до кипения"
AC>Любой не изветный объект, встретившийся мне и имеющий эти свойства будет класифицирован как некоторая разновидность чайника.

Электрический самовар по этим критериям является чайником. Для тебя это так?
Обычный металлический чайник для кипячения воды на плите по этим критериям чайником не является. Для тебя это так?

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

DG>>>>Если на этом изображение первое слово "эквивалентность" заменить на словосочетание "переформулирование через четкие множества, для того, чтобы можно было применить математику", то я согласен.

AC>>>Как вы себе это представляете?
DG>>"это" — что в данном случае подразумевает?
AC>Процесс переформулирования.

Обычно через введение множества допущений, часто эти допущения вводятся неявно.
Пример.
Образное описание: крупным клиентам даем автоматически скидку на 10%
В данном случае есть нечеткий образ "крупный". Если такое распоряжение выдать куче разных продавцов, то каждый продавец будет это распоряжение отрабатывать по разному — по своему воспринимая что такое крупный, и в какой момент применяется скидка.
Символьное описание:
При переводе на символы образ "крупный" заменяется на символ "статус крупный":
клиент имеет статус крупного, если он купил на 5 млн. руб;
изменение статуса клиента происходит 10 января на основании оплаченных счетов за предыдущий календарный год,
если на момент выставлении счета клиент имеет статус крупного, то он автоматически получает скидку 10%.
Re[12]: Заметка: Язык программирования
От: AlexCab LinkedIn
Дата: 06.07.12 16:00
Оценка:
Здравствуйте, DarkGray, Вы писали:
AC>>Ключевые свойства: 1-есть некоторая ёмкость для воды, 2-есть некоторый "встроеный" источник тепла подогревающий воду, 3-алгоритм использования "набрать воды -> нагреть до кипения"
AC>>Любой не изветный объект, встретившийся мне и имеющий эти свойства будет класифицирован как некоторая разновидность чайника.
DG>Электрический самовар по этим критериям является чайником. Для тебя это так?
Да, вариант чайника, если бы не знал правельного называется, гарантировано называл бы чайником.
Тем не мение, самовар это самовар, они имеет собственное дерево абстракции, с листьями из всех конкретных самоваров что я помню, и корнем собствено абстрактным образом "самовар". И отличается от чайника(в общеринятом значении) характерной конструкцией. Самовар находится на одном уровне с чайником, т.е. оба они относятся к классу "устройства для кипячения воды"(те из подобных устройств, что имеют длинное название, я для краткости так и называю, чайниками). ИМХО.
DG>Обычный металлический чайник для кипячения воды на плите по этим критериям чайником не является. Для тебя это так?
Такие чайники имеют дно специальной конструкции(широкое), котрое в рамках образа "чайник" можно считать его источником тепла. Чайник без этого(например заварник), я бы класифицировал как вариант кувшина.

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

Это не значит что их нету. И к тому же процесс серьёзного обдумывания наверняка изменит обдумываемый образ.
К примеру, ты решил "всё, с сегдняшненго дня чаник это: 1...2...3... и не как иначе", т.е. определил строгие критерии, и как следствие строгое множетво объектов подходящих под эти критерии. Но однажды тебе встретился чайник который не подпадает под всего один из этих критериев, у тебя есть выбор либо считать это не чайником либо изменить критерии. Допустим ты выбрал второе, и изменил критерии таким образом чтобы они покрывали и этот вариант чайника. Ведь это не слелало критерии не чёткими(по крайней мере до следующего изменения). По моему скромному мнению, нечто подобное происходит в мышлении людей, но выполняется это автоматически(скрытно, само сабой), а люди пользуются только готовым результатом("готовыми" абстрактными образами).

DG>>>>>Если на этом изображение первое слово "эквивалентность" заменить на словосочетание "переформулирование через четкие множества, для того, чтобы можно было применить математику", то я согласен.

AC>>>>Как вы себе это представляете?
DG>>>"это" — что в данном случае подразумевает?
AC>>Процесс переформулирования.
DG>Обычно через введение множества допущений, часто эти допущения вводятся неявно.
DG>Пример.
DG>Образное описание: крупным клиентам даем автоматически скидку на 10%
DG>В данном случае есть нечеткий образ "крупный". Если такое распоряжение выдать куче разных продавцов, то каждый продавец будет это распоряжение отрабатывать по разному — по своему воспринимая что такое крупный, и в какой момент применяется скидка.
DG>Символьное описание:
DG>При переводе на символы образ "крупный" заменяется на символ "статус крупный":
DG> клиент имеет статус крупного, если он купил на 5 млн. руб;
DG> изменение статуса клиента происходит 10 января на основании оплаченных счетов за предыдущий календарный год,
DG> если на момент выставлении счета клиент имеет статус крупного, то он автоматически получает скидку 10%.
Этот пример, это формализация(уточнение), операция обратная абстракции. Формализация может выполнятся и вовсе без математики, наример: "не впускать клиентов маленького роста" => "не впускать клиентов чей рост ниже красной черты у входа".
А чтобы использовать математику как рез необходимо выполнить абстракцию, например: "в корзине десять яблок, если их разделить на двоих, по сколько достанется каждому" =абстракция-> "10/2 = ? -> 5" =формализация-> "каждому достанется по пять яблок".
Т.е. первое слово "эквивалентность" заменить на словосочетание "переформулирование через четкие множества", не как нельзя, так как там не выполняется формализация(символ "Z" не мение абстрактен чем образ "переменная").
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
Re[2]: Заметка: Язык программирования
От: AlexCab LinkedIn
Дата: 06.07.12 16:08
Оценка:
Здравствуйте, maxkar, Вы писали:

M>Здравствуйте, AlexCab, Вы писали:


AC>>Мнения, особенно замечания и конструктивная критика, приветствуются!

M>История математики изложена скучно. И, похоже, взята из wiki...
В общем-то да.

M>Правильная история открытий и изобретений в нашем контексте следующая:

M>1. Изобретение абстракции числа (не 5 конкретных булок, а просто "5"). В IT именно на этом уровне работали первые вычислители (сумматоры, счетные машины).
M>2. Изобретение "абстрактной записи". Это на самом деле огромное достижение, без которого математика развивалась бы гораздо медленнее. До этого в математических трактатах так и было по всему тексту (пользуясь веткой из обсуждения) "единица деленная на объем воды, вытекающей из трубы бассейна". Замена "объема воды..." на z (ну и + математические символы) позволила сократить математические тексты и сделать их более сконцентрированными на задаче. В IT это появление "ассемблеров высокого уровня" — C и т.п., которые абстрагируются от "конкретики" и позволяют "кратко" записать какие-то вещи.
M>3. Развитие "алгебры" как отдельной области математики. В данном случае я под "алгеброй" имею в виду любые символьные вычисления и преобразования. Вроде a + b + e = a + c + e => b = c. Для применения подобных преобразований нужно накладывать определенные ограничения на сами элементы и операции. Преобразование выше накладывает определенные ограничения на оператор "+". Попытки использовать обобщенные алгоритмы (работающие в обобщенных терминах) в IT, потребовали механизмов описания тех самых ограничений. Сейчас таким механизмом являются системы типов. Отношение is-a как раз и задает возможность использовать обобщенные алгоритмы. Отсюда и OOP (в первую очередь — обобщенные алгоритмы) с его отношением наследования.
Да, похожи.

M>Хочу язык с first-class types.

Что такое "first-class types"?
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
Re[2]: Заметка: Язык программирования
От: AlexCab LinkedIn
Дата: 06.07.12 17:11
Оценка:
Здравствуйте, maxkar, Вы писали:
M>При правильном моделировании у чайника останутся только свойства и никакого поведения.
Почему? У реального чайника есть поведение(например, выключается когда закипит, остывает etc.), его также нужно эмулировать

M>А какой из языков позволяет переносить объекты отдельно от отношений между объектами?

Даже естественный не позволяет, прежде чем(или во время) рассказывать человеку об объекте, нужно "синхронизировать" с ним контекст, иначе он просто не поймёт о чём речь.
M>Без возможности переносить объекты и отношения отельно...
Отношения объектов я тагже считаю объектами.

M>А ссылки можно?

Это моё предположение, сделанное на основе наблюдения: я знаю очень много людей любящих говорить/писать(такие люди когда хотят что то объяснить делают это словами) и очень мало таких что любят ещё и рисовать(такие люди прежде чем что то объяснять говорят что то вроде "у тебя есть листок и ручка"). Может быть мне просто не повезло.
M>Образное мышление нелинейнои может давать "быстрое" нахождение результата.
Что вы имеете ввиду под "нелинейно", как себе это представляете?
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
Re[3]: Заметка: Язык программирования
От: maxkar  
Дата: 09.07.12 21:14
Оценка:
Здравствуйте, AlexCab, Вы писали:

AC>Здравствуйте, maxkar, Вы писали:


M>>Хочу язык с first-class types.

AC>Что такое "first-class types"?

А примерно то же, что и first-class function. Полноценный "элемент" программирования, доступный в рантайме и практически не отличающийся по свойствам от простых значений. Т.е. его можно сохранить в переменную, передать в качестве параметра, сконструировать новый тип. Например, считать что-нибудь из конфига и создать новый тип, затем добавить методы для обработки этого типа и скормить все это хозяйство в какой-нибудь обобщенный алгоритм. Или с шаблоном сопоставить (в рантайме, естественно!), например. Самое интересное будет, когда "тип" будет параметризовываться чем угодно. Там как раз можно будет делать что-то вроде:
  switch (config.groupOp) {
    match '+' : return Group(Int, +);
    match '*' : return Group(Int, *);
  }

В этом случае тип даже параметризуется "Обычными" значениями языка (функциями, + — функция сложения двух чисел). Вместе с зависимыми типами могут быть очень интеренсые результаты для доказательства корректности программ, например. Но мне это сначала для выразительности хочется попробовать .
Re[3]: Заметка: Язык программирования
От: maxkar  
Дата: 09.07.12 21:53
Оценка:
Здравствуйте, AlexCab, Вы писали:

AC>Здравствуйте, maxkar, Вы писали:

M>>При правильном моделировании у чайника останутся только свойства и никакого поведения.
AC>Почему? У реального чайника есть поведение(например, выключается когда закипит, остывает etc.), его также нужно эмулировать

Это не поведение чайника. Это же самое поведение можно приписать воде — она выключает чайник, когда закипит, остывает и т.п. В процессе кипения вода порождает пар (вообще новый объект) и потребляет энергию (которая через электричество идет). А можно развернуть поведение в другую сторону и всем будет заправлять "электричество". Вот и получается, что "выключение при закипании" — это не свойство чайника. Это свойство всей взаимодействующей системы. А у чайника так и останется состояние "включен/выключен + температура". Более того, если немного изменить параметры физического мира (давление изменить), то и процесс кипения изменится. Завязывать поведение чайника на весь физический мир неправильно — он как был, так и остался одним и тем же физическим чайником, изменилась именно внешняя среда. Так что большая часть поведения чайника на самом деле является частью внешней среды, физического мира, а не чайника. И оставление в модели только свойств как раз позволит перенести ваш чайник на высокогорье, где он и будет себя вести так, как подобает нормальному чайнику.

Более того, если копать глубже, выяснится, что "реального чайника" на самом деле не существует. Отдельные элементы вроде выключателя/нагревателя/стакана/термодатчика — существуют. А "физический чайник" — уже нет. Все это объединение мельчайших элементов называется чайником только в сознании наблюдателя ("идеальный чайник"). А вот в реальном мире может быть множество различных классификаций. Так, "чайник" и "мышка (возьмем маковскую, однокнопочную)" могут попадать в классификацию "девайс с кнопкой". В человеческом мышлении для этой категории короткого названия не существует, но категория вполне полноправная и ничуть не хуже, чем чайники. Отмечу также, что если немного позивращаться с подключением мышки, она тоже сможет при нажатии на кнопку кипятить воду (верятно, недолго и с летальным для себя исходом).

M>>А какой из языков позволяет переносить объекты отдельно от отношений между объектами?

AC>Даже естественный не позволяет, прежде чем(или во время) рассказывать человеку об объекте, нужно "синхронизировать" с ним контекст, иначе он просто не поймёт о чём речь.
M>>Без возможности переносить объекты и отношения отельно...
AC>Отношения объектов я тагже считаю объектами.

Я здесь имел в виду то, что "связь" между объектами задается "без изменения" самих объектов, извне. Вот пусть есть тот же чайник. Добавим отношения "полный" (зависит от наблюдателя!), "подходит к кухне" (тоже зависит от наблюдателя). Последнее отношение — внешнее по отношению и к чайнику, и к кухне. И если уже есть объекты "чайник" и "кухня", то хочется задать еще и отдельное отношение. В C# подобное делаеться extension method'ами. Если же мы хотим задать "абстрактный" тип отношения, придется создавать, например, интерфейсы.

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

AC>Может быть мне просто не повезло.

Здесь все нормально. Речи уделяется очень большое внимание с самого раннего детства, поэтому она и становится основным способом выражения мыслей. В первую очередь — именно в качестве выражения. Побочный эффект — "внутренний диалог" — сознательное мышление. "Интуитивное" мышление словами не выражается, поэтому его наблюдать и исследовать гораздо сложнее. Что же касается графического способа выражения мыслей, то ему в действительности уделяется не так много внимания. Во время развития речи у ребенка моторика рук еще не достаточна для хорошего рисования, да и потом рисованию уделяется очень мало времени.

> Что вы имеете ввиду под "нелинейно", как себе это представляете?

Сам процесс этого "нелинейно" представляю очень плохо. Результат представляю очень хорошо — это результат "подсознательной" оценки, оценки без внутреннего диалога. Ну например, посмотрев код, я могу сказать, что он плохой. После первого прохода это больше "интуитивная" оценка. Через 5 минут я могу назвать 10 причин, по которым он плохой. Через полчаса — еще 3 причины. Вот поиск причин — это сознательный процесс, он линейный, с опробованием и отверганием гипотез. А начальная оценка "нелинейная". Можно взять и любую ситуацию, вызывающую сильные эмоции. Первая оценка будет тем самым "нелинейным" процессом. А вот попытки понять, почему эмоция была именно такая — линейным мыслительным процессом.
Re[4]: Заметка: Язык программирования
От: AlexCab LinkedIn
Дата: 10.07.12 08:39
Оценка:
Здравствуйте, maxkar, Вы писали:
M>...
Не со всем согласен, но спорить не буду т.к. уже "переключился" на другую тему.
Спасибо за ответы.
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
Re: Заметка: Язык программирования
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 12.07.12 18:44
Оценка: 64 (1)
советую прочитать Турчина "Феномен науки". там отчасти затрагивается устройство мышления

4.7. Язык
До сих пор мы рассматривали человека как индивидуума и интересовались возможностями его мозга. При таком подходе вовсе не очевидно, что появление на Земле человека — это такая уж революция в истории жизни. Лягушка умнее медузы. Собака умнее лягушки. Обезьяна умнее собаки. Теперь появилось существо, которое умнее обезьяны. Ну и что?

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

Под языком вообще понимают определенный способ сопоставления объектам Ri, которые рассматриваются как некая первичная реальность, объектов Li, называемых именами объектов Ri, и рассматриваемых как нечто вторичное, специально созданное для сопоставления объектам Ri,. По отношение к имени Li объект Ri, называют его значением. Совокупность всех объектов Li часто также называют языком (в более развернутой форме ее следовало бы назвать материальным фиксатором или носителем языка). Множество объектов Li, может быть гораздо обширнее и разнообразнее множества языков Li. Так, например, обстоит дело в случае естественных языков: русского, английского и т. п. Ясно, что при замене восприятия реальных объектов и ситуаций на их словесное описание теряется огромное количество информации. В тех случаях, когда информативность объектов Ri и Li одного порядка величины, вместо слова язык часто употребляют кибернетический термин код. Переход от R к L называют кодированием, а обратный переход от L к R — декодированием. Так, при передаче по радио сообщения с помощью «морзянки», исходный текст — набор букв кодируется набором точек и тире. В этом коде (языке) информация совершает путешествие в эфире и принимается в заданной точке. Затем происходит декодирование с языка точек и тире на язык букв. Процесс кодирования и декодирования в данном случае не приводит к потере информации.

Так как для перехода от значения к имени и обратно нет более удобных общепринятых терминов, чем кодирование и декодирование, мы будем употреблять эти термины в самом общем смысле, не заботясь о соотношении информативностей (и называя язык не «кодом», а именно «языком»).

Объекты Ri и Li могут быть произвольной природы, это не обязательно предметы, а, вообще говоря, явления, звуковые колебания. Заметим, что «явление» — это самый общий термин, которым мы можем обозначить какую-то часть физической реальности, ограниченную в пространстве и времени, «предмет» — более расплывчатое понятие, которое относят к явлениям специального типа, обнаруживающим определенную стабильность: наличие поверхности, через которую отсутствует обмен веществом. Так как в действительности абсолютно непроницаемых границ не существует, и все так называемые предметы непрерывно меняются, это понятие относительно; оно отражает лишь малую скорость изменений.

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


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

12.1. Формализованный язык
[..]
Понятие о формализованном языке можно определить следующим образом.

Обратимся к нашей схеме использования языковых моделей действительности (см. рис. 9.5) и поставим вопрос: каким образом выполняется преобразование L1 → L2, от какой информации оно зависит? Можно представить себе две возможности.

Преобразование L1 → L2 определяется исключительно языковыми объектами Li, которые в нем участвуют, и не зависят от тех языковых представлений Si, которые им соответствуют по семантике языка. Иначе говоря, языковая деятельность зависит только от «формы» языковых объектов, но не от их «содержания» (значения).
Результат преобразования языкового объекта Li зависит не только (и не столько) от вида самого объекта Li, но и от представления Si, которое он порождает в голове человека, от ассоциаций, в которые он входит, а, следовательно, от личного жизненного опыта человека.
В первом случае мы называем язык формализованным, во втором неформализованным.

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

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

Человек реагирует на приказ строго формально, т. е. его действия зависят только от той информации, которая содержится в тексте приказа, рассматриваемом как изолированная материальная система.
Действие человека зависит от тех представлений и ассоциаций, которые вызывает у него приказ. Таким образом, он использует фактически гораздо большую информацию, чем та, которая содержится в тексте приказа.
Принципиальной разницы между языком приказов и языком моделей нет. Приказ «прячься!» можно трактовать как модель «если ты не спрячешься, то рискуешь потерять жизнь». Различие между приказом и моделью — в деталях использования информации. В обоих случаях формализованность языка приводит к определенному отделению синтаксиса от семантики, к отрыву материальных языковых объектов от связанных с ними представлений, к приобретению языковыми объектами качеств независимой системы.

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

[..]

Re[2]: Заметка: Язык программирования
От: AlexCab LinkedIn
Дата: 13.07.12 13:54
Оценка:
Здравствуйте, DarkGray, Вы писали:
DG>советую прочитать Турчина "Феномен науки". там отчасти затрагивается устройство мышления
Спосибо, интересно.

4.7. Язык
...

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

DG>мы говорили о разнице между образным мышлением и символьным мышлением,

Теперь понял, меня запутали "образный"/"символьный".
DG>у Турчина тоже самое называется неформальным мышлением и формальным мышлением, и проводится такое же различие между ними.
С ним я тагже полностью согласится не могу, см. далее.

12.1. Формализованный язык
[..]
Понятие о формализованном языке можно определить следующим образом.

В общем согласен с определением "формализованый язык", но ИМХО оно крайне неудачно, я бы сказал: ФЯ это язык каждый объект L котрого точно соответствует объекту S(семантике), который в свою очередь точно(на сколько это возможно) соответствует объекту R(из Ri)(определение точных соответствий есть процесс формализации языка). Если эти соответствия не точны т.е. зависят от контекста, язык не формализованый. Не точным может быть отношение L-S(например слово "винт" в контексте "корабль" и в контексте "крепёж"), и отношение S-R(это когда объект S является абстрактным, и от контекста зависит к какому R он будет формализован, когда возникнет такая необходимость(именно мышление с использованием таких объектов S я называю "абстрактным")).

Преобразование L1 → L2 определяется исключительно языковыми объектами Li, которые в нем участвуют, и не зависят от тех языковых представлений Si, которые им соответствуют по семантике языка. Иначе говоря, языковая деятельность зависит только от «формы» языковых объектов, но не от их «содержания» (значения).

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

Результат преобразования языкового объекта Li зависит не только (и не столько) от вида самого объекта Li, но и от представления Si, которое он порождает в голове человека, от ассоциаций, в которые он входит, а, следовательно, от личного жизненного опыта человека.


Т.к. соответствие объектов L,S и R, в не формализованном языке зависит от контекста, его будет необходимо сначала сконструировать(чтобы собственно понимать значение каждого слова), для чего и используется множество S(семантика).

В первом случае мы называем язык формализованным, во втором неформализованным.

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

Вот тут он ИМХО не прав, формализация языка гвоздями прибивает синтаксис к семантике, что собственно и позволяет безопасно отбросить семантику((!) не абстрагироваться от семантики, а именно отбросить).

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

Тут по моему он также ошибается, так как ключевую роль в мышлении играет именно семантика, а потому для того чтобы назвать мышление формальным достаточно чтобы объекты S точно соответствовали объектам R, т.е. от языка это не зависит. Например использование контекст-зависимого слова "винт" не делает фразу "гребной винт лодочного мотора Yamaha 5 CMHS закреплён винтом М14" не формальной.

Но с другой стороны, по паре отрывков, сложно судить о том что имел ввиду автор, прочитаю полностью тогда смогу сделать более точные выводы.
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
Re[3]: Заметка: Язык программирования
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 13.07.12 14:22
Оценка: +1
AC>В общем согласен с определением "формализованый язык", но ИМХО оно крайне неудачно, я бы сказал: ФЯ это язык каждый объект L котрого точно соответствует объекту S(семантике), который в свою очередь точно(на сколько это возможно) соответствует объекту R(из Ri)

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

AC>Т.к. в формализованном языка множества Li, Si и Ri точно соответствуют друг другу, можно использовать только элементы множества Li, не обращаясь к Si.


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

AC>

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

AC>Вот тут он ИМХО не прав, формализация языка гвоздями прибивает синтаксис к семантике, что собственно и позволяет безопасно отбросить семантику((!) не абстрагироваться от семантики, а именно отбросить).

если это утверждение верное, то почему это не видно на примере .net-а?
где семантика задана .net-ом, а синтаксис можно брать произвольный: C#, VB.Net, F#, IL и т.д.

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

имхо, как раз наоборот, чем сильнее формализация — тем сильнее семантика отделяется от синтаксиса, из-за того, что как раз уменьшается роль непроговоренной информации, которую и пыталась хоть как-то передавать жесткая связка синтаксиса и семантики.
Re[4]: Заметка: Язык программирования
От: AlexCab LinkedIn
Дата: 14.07.12 14:08
Оценка:
AC>>В общем согласен с определением "формализованый язык", но ИМХО оно крайне неудачно, я бы сказал: ФЯ это язык каждый объект L котрого точно соответствует объекту S(семантике), который в свою очередь точно(на сколько это возможно) соответствует объекту R(из Ri)
DG>это требование никогда не выполняется.
Ну в общем да, выполняется "на сколько это возможно". По началу я подумал заменить на "на сколько это нужно" но это будет не правильно так как речь об языке в целом а не о языке в рамках некоторой задачи(в рамках некоторой задачи можно, насколько это нужно, формализовать часть или даже весь не формализованный язык, но это не сделает его формализованным вне рамок задачи). ФЯ это именно такой язык в котором любой, взятый отдельно(от контекста), элемент L может быть заменён элементом R(реальный объект это не обязательно физический объект, это любой объект существующий в реальном мире например объект "1" или объект "объект") и на оборот.

DG>Логика первого порядка, или арифметические вычисления являются формальными языками, но при этом точного соответствия с R никогда не происходит:

ЛПП и арифметика точны только на своём "уровне", например для арифметики это когда объектами R являются сами цифры и операции над ними(т.е. теоретическая математика), без привязки к каким либо другим объектам. А, например, когда языком математики записывают количество мест(к примеру 42) это уже не формальная запись(абстрактная в данном случае), т.к. сама по себе цифра 42 нам не даст ответа на вопрос "чего?", а "количество мест" это уже не язык математики.
DG>один точный метр в природе днем с огнем не сыщешь, не говоря уже про эталонные чайники.
Не нужен точный, нужен "конкретно этот метр" или "конкретно этот чайник".

AC>>Т.к. в формализованном языка множества Li, Si и Ri точно соответствуют друг другу, можно использовать только элементы множества Li, не обращаясь к Si.

DG>на практике используется чуть другое требование:
DG>т.к. Li передает Ri с точностью достаточной для решения задачи, то можно использовать Li не обращаясь к Ri.
Ну да, так как все три(L,S,R) соответствуют друг другу.
"с точностью достаточной для решения задачи" это относится к языку формализованному для конкретной задачи, вне её он уже не будет таковым.

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

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

AC>>

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

AC>>Вот тут он ИМХО не прав, формализация языка гвоздями прибивает синтаксис к семантике, что собственно и позволяет безопасно отбросить семантику((!) не абстрагироваться от семантики, а именно отбросить).
DG>если это утверждение верное, то почему это не видно на примере .net-а?
DG>где семантика задана .net-ом, а синтаксис можно брать произвольный: C#, VB.Net, F#, IL и т.д.
1)Наличие нескольких синтаксисов для одной семантики не делает язык не формализованным.
2)Современные ЯП, из-за стремления быть более "человекоподобными", давно не являются формализованными(полиморфизм, вывод типов, перегрузка, и прочее метапрограммирование).
DG>с числами всё тоже самое. При общей семантике операций сами числа можно записывать как угодно: справа налево, сверху вниз, позиционное исчисление, двоичная запись, дополнительный код, простые дроби, десятичный дроби и т.д.
Это потому что синтаксисы "1","один", "one" etc. имеют одну и туже семантику.
DG>имхо, как раз наоборот, чем сильнее формализация — тем сильнее семантика отделяется от синтаксиса, из-за того, что как раз уменьшается роль непроговоренной информации, которую и пыталась хоть как-то передавать жесткая связка синтаксиса и семантики.
Нет, уменьшение роли не приговорённой информации как раз возможно благодаря тому что, при разработке язык, синтаксис строго связывается с семантикой а та в свою очередь с реальными объектами, а потому пользователи языка не задаются вопросами вроде "какой именно чайник сейчас имеется ввиду?".
one
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
Re[5]: Заметка: Язык программирования
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 14.07.12 15:11
Оценка:
DG>>где семантика задана .net-ом, а синтаксис можно брать произвольный: C#, VB.Net, F#, IL и т.д.
AC>2)Современные ЯП, из-за стремления быть более "человекоподобными", давно не являются формализованными(полиморфизм, вывод типов, перегрузка, и прочее метапрограммирование).

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

Поведение .net-а полностью определяется самим .net-ом. О какой тогда неформализованности ты говоришь?
Re[6]: Заметка: Язык программирования
От: AlexCab LinkedIn
Дата: 14.07.12 18:48
Оценка:
Здравствуйте, DarkGray, Вы писали:
DG>>>где семантика задана .net-ом, а синтаксис можно брать произвольный: C#, VB.Net, F#, IL и т.д.
AC>>2)Современные ЯП, из-за стремления быть более "человекоподобными", давно не являются формализованными(полиморфизм, вывод типов, перегрузка, и прочее метапрограммирование).
DG>ранее утверждалось, что формализованный язык — это такой язык, поведение которого полностью определяется самим языком, и не требуется внешняя информация.
Если это писал то либо ошибся либо ты меня не понял, кинь цитату, будем разберется.
По моему скромному мнению язык это средство описания, он не имеет поведения("ничего не делает сам по себе").

DG>Поведение .net-а полностью определяется самим .net-ом.

Причём здесь поведение платформы, мы ведь о языке говорим?
DG>О какой тогда неформализованности ты говоришь?
О неформализованности синтаксиса, когда одна и та-же синтаксическая единица может иметь разную семантику в зависимости от контекста, например перегруженный оператор.
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
Re[4]: Заметка: Язык программирования
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.07.12 08:10
Оценка:
Здравствуйте, DarkGray, Вы писали:

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


DG>Например, периодически люди говорят "ой! слово вылетело; ой, забыл как называется". При этом человек может описать свойства, может строить рассуждения, и т.д. у него лишь временно "пропала" обратная ссылка для преобразования образа в кодирующего его слово.

DG>Или можно взять знакомые объекты: соседей по дому; рядом стоящие здания и улицы и т.д. Мы можем строить достаточно сложные рассуждения о том, кто где находится, у кого какие привычки; как пройти по улицам между зданий в заданную точку — но при этом у нас нет отдельных слов для обозначения каждого полузнакомого нам человека, или для каждого здания и улицы которое мы видели, знаем и помним.
DG>То, что человек думает образами, а не словами — демонстрирует также полиграф (детектор лжи). Даже если человеку начать просто показывать слова — он начнет волноваться, радоваться, печалится, потеть, ерзать, будет меняться дыхание, пульс и т.д., потому что каждое слово будет вызывать определенный образ, причем значительная часть образов настолько "большая", что они затрагивают даже эмоциональный и физиологический центры мозга.

DG>Вот это всё лишь малая часть того образа, который возникает в голове у каждого человека — когда появляется слово "чайник", и именно такое большое кол-во взаимосвязей, и позволяет корректно среагировать на фразу "сделай мне, пожалуйста, чая".


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

Если поменять в твоем тексте образ на понятие то будет более менее правильно.
Re: Заметка: Язык программирования
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.07.12 08:22
Оценка: 2 (1)
Здравствуйте, AlexCab, Вы писали:

AC>Тысячи языков, сотни платформ, десятки парадигм, зачем? почему?

AC>Каждый, кто сталкивался с миром программирования наверняка задавался этими вопросами, так было и со мной.
AC>В этой заметке я вкратце напишу о том как появились и развивались языки программирования, о том, как появляются программы.
AC>О связи реального, воображаемого и виртуального миров.
AC> read more&gt;&gt;&gt;
AC>--------------------------------
AC>Мнения, особенно замечания и конструктивная критика, приветствуются!

Материал конечно хлипковат, среди языков только древние да маргинальные и вдобавок нет ни строчки про Немерле.

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

Ну и вообще,про развитие есть, а про назначение ничего нет, а то тут местные функционалисты исповедуют религию "программирование превыше всего".
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.