Leave a comment

amarao_san April 3 2008, 08:18:38 UTC
Тексты есть. Они, правда, занудны. Но основа-то очень простая. Компьютеры вообще тупые устройства, берущие скоростью и количеством. Большая часть существующих языков на грамматическом уровне работает с LR-грамматикой. Есть даже особый язык написания языков программирования (точнее, парсинга текста программ - yacc называется).

А вот семантическая область - это очень хитрО, тут стройной теории (по моим ощущениям) нет - зато есть то самое "ощущаю".

Вот математики очень много спорят "разные это нули или нуль один-единственный". Если мы из 0.1 вычли 0.1 - мы получили натуральный ноль или вещественный? А если из 1 вычесть 1? Колоссальная философская проблема, о которой можно написать трактаты. А ведь ещё бывают нулевые множества, нуль-векторы и т.д.

В программировании эта проблема решается понятиями "тип данных" и "приведение одного типа данных к другому". Это РАЗНЫЕ нули. Хотя часть из них прозрачно (автоматом) приводится друг к другу. А часть не приводится.

Или ещё одна проблема "прототип/экземпляр". В программировании это чётко выражено и сформулировано (чёткость её такова, что понимает это даже тупая железка).

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

Безусловно, летать "выше" этого надо - ведь откуда программированию брать новые идеи? (Я лингвистам благодарен за регулярные выражения - ибо сила в них великая). Но летая "выше" надо помнить про твёрдые основы. Когда человек начинает летать на той высоте, где остальные ходят пешком - это выглядит глупо. Как плавание в воде, которая по пояс.

Reply

ivanov_petrov April 3 2008, 09:19:34 UTC
Меня смущает вот какое соображение. Вы говорите об этих вещах как о "практической реальности", как о "вещи", которая проверяет теорию. Однако это ведь не "само такое", а "сделано". Вполне возможно, можно сделать и иначе. Для других целей, скажем.

Reply

amarao_san April 3 2008, 11:42:22 UTC
"Просто иначе" сделать не получится. Сколько языков программирования - а всё равно концепции те же самые. Они могут быть в разном комплекте, в разных реализациях, но суть - всегда одна и та же.

Тип - это тип. И даже если в язык программирования вкручивается эвристический автоприводитель (вроде вижалбейсика, в котором можно написать a="5"+3 и он догадается, что "5" - это число, а не строка), то всё равно эти типы данных вылазят. Не в одном месте, так в другом.

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

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

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

Reply

gouriev April 3 2008, 23:42:42 UTC
есть тексты и обратного направления:
от лингвистов для программистов.

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

Reply


Leave a comment

Up