Выкинь UML, забудь C#
От: Аноним  
Дата: 30.12.08 13:41
Оценка:
Валерий Выхованец защитил докторскую диссертацию «Синтез эффективных математических моделей дискретной обработки данных на основе алгебраической и понятийной декомпозиции предметной области».

Предлагается новая методология формализации знаний – на основе понятийного анализа – и соответствующая ей технология программирования.

http://valery.vykhovanets.ru/Texts/2006/Vykhovanets2006_6.pdf
Re: Выкинь UML, забудь C#
От: LaptevVV Россия  
Дата: 30.12.08 14:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Валерий Выхованец защитил докторскую диссертацию «Синтез эффективных математических моделей дискретной обработки данных на основе алгебраической и понятийной декомпозиции предметной области».


А>Предлагается новая методология формализации знаний – на основе понятийного анализа – и соответствующая ей технология программирования.


А>http://valery.vykhovanets.ru/Texts/2006/Vykhovanets2006_6.pdf

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

А модель предметной области как онтология понятий — давно хорошо известно. В обучающих системах, например, практически применяется.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Выкинь UML, забудь C#
От: Arsen.Shnurkov  
Дата: 30.12.08 14:58
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, Аноним, Вы писали:


А>> Валерий Выхованец защитил докторскую диссертацию

LVV> конечно, впечатляющий. Математики достаточно много.

Вот, наверное, и совет принимал защиту по такому принципу, а не по сути.

LVV> А модель предметной области как онтология понятий — давно хорошо известно.


Вы не читали. Во-первых, потому что норматив на чтение — 100 страниц в день, а там 500 и научного текста, который читается медленнее.
А во-вторых, потому что в работе онтологический подход критикуется.
Re[3]: Выкинь UML, забудь C#
От: LaptevVV Россия  
Дата: 31.12.08 07:36
Оценка:
Здравствуйте, Arsen.Shnurkov, Вы писали:

А>>> Валерий Выхованец защитил докторскую диссертацию

LVV>> конечно, впечатляющий. Математики достаточно много.
AS>Вот, наверное, и совет принимал защиту по такому принципу, а не по сути.
Ну, по сути мало кто понимает. Да и самому автору важней докторская, чем суть.
Суть нужна была таким людям, как Ершов Андрей Петрович. ИМХО, сейчас в нашей информатике таких величин нет.
Смешанные вычисления Ершова сколько лет назад были опубликованы...
JIT-компиляторы — смешная реализация смешанных вычислений...
LVV>> А модель предметной области как онтология понятий — давно хорошо известно.
AS>Вы не читали. Во-первых, потому что норматив на чтение — 100 страниц в день, а там 500 и научного текста, который читается медленнее.
Естественно, за 15 минут прочитать такой труд невозможно. Проглядел, да и то — по диагонали. На каникулах всерьез и займусь...
AS>А во-вторых, потому что в работе онтологический подход критикуется.
Между прочим, насколько я понимаю,
онтологический подход никогда не претендовал на то, чтобы именоваться парадигмой программирования.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Выкинь UML, забудь C#
От: saprxm СССР  
Дата: 31.12.08 09:08
Оценка: :))) :)
я учился на МатМехе СПбГУ и вобщем преуспел в своей специалность программиста

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

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


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

я недоволен!
Властитель слабый и лукавый,
Плешивый щеголь, враг труда,
Нечаянно пригретый славой,
Над нами царствовал тогда.... (А.С. Пушкин ? )
Re: Выкинь UML, забудь C#
От: Аноним  
Дата: 05.01.09 09:13
Оценка:
А>Предлагается новая методология формализации знаний – на основе понятийного анализа – и соответствующая ей технология программирования.
А>http://valery.vykhovanets.ru/Texts/2006/Vykhovanets2006_6.pdf

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

Спасибо за ссылку.

Это — будущее программирования. Может быть, не конкретно это, но будущее находится где-то в этом направлении.

Конечно, практическая реализация у Выхованца подкачала, как и у многих других до него (и, видимо, после него).

Такая сногсшибательная теоретическая часть, а на выходе мы получили — понятийный… ассемблер.

Конечно, до «забытия» C# здесь как до Луны.
Re[2]: Выкинь UML, забудь C#
От: Аноним  
Дата: 14.01.09 06:49
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Но до практической реализации вкак технологии программирования — как до Луны.

LVV>Именно потому, что это просто диссер, и фирмы о нем не узнают никогда.
LVV>Но как тенденция в направлении развития — да, стоит внимания.
LVV>Возможно, аналогичные исследования выполняются в недрах микрософта самостоятельно.
Jetbrains MPS. Они ее ваяют уже лет пять и вроде бы нечто работающее уже есть.
Ничего принципиально нового — автор не открывает, Да DSL, да некоторые даже пользуются. Хотя, я просмотрел только практические примеры в конце диссертации. Скорее всего я что то упустил
Re[3]: Выкинь UML, забудь C#
От: Mishka Норвегия  
Дата: 14.01.09 17:34
Оценка:
Программирование — это искусство, оно не объяснимо, не упорядоченно и не ограниченно. Только тот, кто понимает это, может перешагнуть рамки "дозволенного" и создать настоящий шедевр.
Re[4]: Выкинь UML, забудь C#
От: Аноним  
Дата: 14.01.09 20:22
Оценка: :)))
Здравствуйте, Mishka, Вы писали:

M>Программирование — это искусство, оно не объяснимо, не упорядоченно и не ограниченно. Только тот, кто понимает это, может перешагнуть рамки "дозволенного" и создать настоящий шедевр.


Бобер, выдыхай !
Re[3]: сотри Cyc, брось Nemerle
От: Аноним  
Дата: 15.01.09 12:57
Оценка:
А>Ничего принципиально нового — автор не открывает, Да DSL, да некоторые даже пользуются.

по-аналогии, афтар тут заявил про Cyc и про Nemerle:

1. Cyc (цик) — база знаний продукционного типа, базирующаяся, как и многие другие, на исчисление предикатов 1 порядка.
2. Nemerle, как и все языки программирования, не более чем язык программирования, хоть и интегрирует в себе идеи объектной и функциональной методологии.

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

Re: Выкинь UML, забудь C#
От: Cyberax Марс  
Дата: 19.01.09 21:12
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Валерий Выхованец защитил докторскую диссертацию «Синтез эффективных математических моделей дискретной обработки данных на основе алгебраической и понятийной декомпозиции предметной области».

Ну... Зла на нашу фундаментальную информатику у меня уже не осталось...

А>Предлагается новая методология формализации знаний – на основе понятийного анализа – и соответствующая ей технология программирования.

А>http://valery.vykhovanets.ru/Texts/2006/Vykhovanets2006_6.pdf
Я просмотрел её, пропуская большинство доказательств. Сразу возник вопрос: а для чего оно всё это вообще нужно? Где есть какие-нибудь практические результаты?
Sapienti sat!
Re[5]: Выкинь UML, забудь C#
От: Мемега Литва  
Дата: 20.01.09 08:51
Оценка: 1 (1)
Здравствуйте, saprxm, Вы писали:

S>я учился на МатМехе СПбГУ и вобщем преуспел в своей специалность программиста


S>но вот было на всех младших курсах прочтение большого количества высокободяжных абстрактных лекций с приведением нескончаемого потока в основном непонятно как применимых теорем


S>в этом всем конечно заключен большой минус образования

S>надо было сначала обозначить проблему, предложить студентам подумать как бы они ее решили, а уже потом открыть решение с приложением всех выкладок


S>я не очень уважаю академическое образование, потому что оно недостаточно применимо в практике

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

S>я недоволен!


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

Лично я озвученные вами проблемы минусами не считаю, мне кажется, что высшее образование это не сборник готовых рецептов, а фундамент на всю жизнь, т.к. учеба длится намного дольше, чем 5 лет в универе.
memega
Re[6]: Выкинь UML, забудь C#
От: vkoaes  
Дата: 20.01.09 17:19
Оценка:
Суть рассматриваемой темы — если по-простому — такова: на каком языке удобнее описать решение стоящей задачи, такой и будем использовать. Если таковой не обнаружится, то создадим его. Технология отличается от Domain Specific Language (DSL) тем, что удается описывать семантику произвольных языковых конструкций, опять же, на удобной для этого языке (т.е. решаем новую задачу, или выполняем семантическую рекурсию). А в подходах DSL (SymADE, Intentional Programming, JetBrains, Nemerle и др.) все, в конечном итоге, описывается на некотором фиксированном (си-подобном) языке.

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

В итоге, как мне кажется, предлагается развивать выразительные возможности используемых языков. Фактически, современные языки программирования — языки Эллочки Щукиной (Ильф и Петров, 12 стульев). Можно, конечно, закрыть глаза на эту проблему, однако основной вектор развития технологий программирования направлен именно в эту сторону (язык Z спецификаций в Оксфорде, система Масима Кизуба SymADE, Intentional Programming Чарзльза Симони, meta-programming system питерских JetBrains, Nemerle и др.)
Re[7]: Выкинь UML, забудь C#
От: vkoaes  
Дата: 21.01.09 05:21
Оценка: 35 (3) :))
В рамках полемики с Мемегой позволю себе процитировать известного российского логика и информатика Непейводу Н.Н. по вопросам образования и "новомодных колледжей".

"В последние два года многие вузы России столкнулись с двумя проблемами: падение на 70% уровня подготовки абитуриентов и появление на 1 курсах поколения, которое обычно называется homo informaticus. Анализируя встречающиеся в литературе характеристики homo informaticus и сравнивая их с реальным уровнем абитуриентов даже на специальности информатика в отнюдь не худшем российском университете, моджно отметить следующее.

1. До уровня homo эти особи не доросли. Они работают с компьютерами как обезьяны. Мышление их убито, они пытаются угадать желаемый ответ, как и требуется в тестах.

2. Столкновение с открытым софтом вызывает у них шок. Командная строка воспринимается как изощренная пытка: "Ты не умствуй, ты пальцем покажи, куда ткнуть мышой!"

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

4. Неумение писать.

5. Неумение искать релевантную информацию.

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

Но преподавателям необходимо перестроиться психологически и понять, что обезьянье поведение — не столько вина этих молодых ребят, сколько их беда. Практически весь первый семестр уходит на то, чтобы в глазах появились искорки разума, а в решениях — проблески осмысленности."

Добавить нечего.
Re[8]: Выкинь UML, забудь C#
От: Мемега Литва  
Дата: 21.01.09 09:12
Оценка:
Здравствуйте, vkoaes, Вы писали:

V>В рамках полемики с Мемегой позволю себе процитировать известного российского логика и информатика Непейводу Н.Н. по вопросам образования и "новомодных колледжей".


V>"В последние два года многие вузы России столкнулись с двумя проблемами: падение на 70% уровня подготовки абитуриентов и появление на 1 курсах поколения, которое обычно называется homo informaticus. Анализируя встречающиеся в литературе характеристики homo informaticus и сравнивая их с реальным уровнем абитуриентов даже на специальности информатика в отнюдь не худшем российском университете, моджно отметить следующее.


К сожалению, не могу ни подтвердить, ни опровергнуть эти данные, т.к. ими не обладаю. Просто потому, что живу и работаю не в России, а в Литве. Параллельно с работой в одном SW компании, читаю лекции в Вильнюсском университете. За последние 5 лет работы в универе сделал такие выводы — в абсолютных числах количество нормальных абитуриентов не уменьшилось. По-прежнему, есть очень толковые ребята, которые с радостью выбирают наиболее сложные проекты и программы. Успевают выполнить требования, которые предлагаются в универе и + еще занимаются дополнительно. НО! У нас очень увеличился набор (именно на информатику). Когда я учился, на курсе было 70 человек, из которых практически все писали программы сами. Теперь же, только на информатику принимают около 200 человек, а еще есть Software Engineering (125 человек) и биоинформатика (около 30). Так вот — из всего этого отряда, все теже 70-100 человек могут самостоятельно писать программы. Остальные — увы
Сначала пытался бороться, "пробудить искорку" в глазах тем, кому не интересно. А потом понял, что если человек не хочет, то его ничем не заставишь. Поэтому ориентируюсь на сильнейших. В конце концов, это не школа или детский сад, уже взрослые люди, и должны сами понимать что и как делать.

V>1. До уровня homo эти особи не доросли. Они работают с компьютерами как обезьяны. Мышление их убито, они пытаются угадать желаемый ответ, как и требуется в тестах.

Я бы предложил жесткий отсев после 1 курса.

V>2. Столкновение с открытым софтом вызывает у них шок. Командная строка воспринимается как изощренная пытка: "Ты не умствуй, ты пальцем покажи, куда ткнуть мышой!"

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

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

Опять же не все. Но если человек не читает, то это уже о многом говорит.

V>4. Неумение писать.

Да, есть такое.

V>5. Неумение искать релевантную информацию.

На 1 курсе вполне возможно.

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

А вот тут есть опасность. Что означает "преподавать,учитывая все эти особенности"? Если это означает лишь снижение планки требований, то я против. Так можно дойти до того, что универ превратится в ПТУ.

V>Но преподавателям необходимо перестроиться психологически и понять, что обезьянье поведение — не столько вина этих молодых ребят, сколько их беда. Практически весь первый семестр уходит на то, чтобы в глазах появились искорки разума, а в решениях — проблески осмысленности."

Не у всех такое поведение. Ориентируемся на лучших.

V>Добавить нечего.
memega
Re[2]: Выкинь UML, забудь C#
От: mkizub Литва http://symade.tigris.org
Дата: 21.01.09 17:18
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Я просмотрел её, пропуская большинство доказательств. Сразу возник вопрос: а для чего оно всё это вообще нужно? Где есть какие-нибудь практические результаты?


Представь себе понятие "контейнер" и "итератор". В современных языках программирования — это нечто крайне конкретное. В яве это Iteratable и Iterator интерфейсы. Если javac их встретил — он понял, что это контейнер и по нему можно итерировать специальной конструкцией языка. В C# это IEnumerable и так далее.
А есть в языках программирование понятие контейнера и итератора как таковое, не привязанное к конкретной реализации?
Сейчас — нету.
Можно написать подобный компилятор (скажем, для переделывания Java в C# и пр.). У неё будет понятие "контейнер вообще" и "итератор вообще". И частные реализации этих вещей в яве и c#. Теперь мы в неё решили добавить ещё компиляцию в Ada, или решили добавить поддержку Enumeration из явы, чтоб она его тоже понимала как итератор. А ещё мы в ней захотели добавить к понятию контейнера ordered и unordered контейнеры, thread-safe и не-safe, итерирование с начала в конец и с конца в начало для ordered контейнеров и так далее.
У тебя в мозгу все эти понятия есть. А у компьютера нету. Их туда надо вводить, и если ты будешь вводить их ad-hoc, ручками каждый случай — ты уже даже с контейнерами запаришься, настолько этих понятий будет много и между ними будет куча связей. Ты когда учишь новый язык — ты же просто привязываешь понятия из этого языка к уже имеющимся у тебя понятиям из знакомых тебе языков программирования, или создаёшь у себя новое понятие, и опять-же связываешь его со знакомыми тебе. А в процессе написания кода и использования этого нового языка — ты обнаруживаешь новые и новые связи, возможности по использованию и специфике этих новых понятий. Как сказал Фейнман — "понять — это свести к привычному, плюс умение им пользоваться". То есть ты либо сводишь понятия к знакомым тебе понятиям (которыми ты уже умеешь пользоваться), либо сделать несводимое к старому — привычным, и научиться им пользоваться.

Вот там в диссертации предложен один из подходов, как создать некую "базу знаний" о "понятиях" и их "связях", и возможность используя эту базу знаний выводить новые связи между понятиями. Как в прологе выводятся новые факты из уже имеющейся базы знаний. Ты добавляешь новое понятие или новое свойство (New), связываешь его с чем-то уже там имеющимся (Old1), и компьютер автоматически получает возможность связать это новое понятие с другими понятиями (Old2, Old2), за счёт имеющихся уже у него связей между Old1 и Old2 и Old3.

Для современых технологий, с фиксированной убогой семантикой, это в общем-то не нужно. Но если ты делаешь расширяемую систему мета-программирования, вроде SymADE или MPS или IP — то это поможет превратить такую среду/IDE из просто средства создания DSL-ей в среду которая на 90% уберёт кодирование. Так же как ты сейчас не заморачиваешься низкоуровневой оптимизацией кода на ассемблере, так через надцать лет программисты не будут заморачиваться кодированием.

Вот для этого оно нужно.
SOP & SymADE: http://symade.tigris.org , блог http://mkizub.livejournal.com
Re[2]: Выкинь UML, забудь C#
От: mkizub Литва http://symade.tigris.org
Дата: 21.01.09 18:27
Оценка: 7 (1)
Здравствуйте, Cyberax, Вы писали:

C>Я просмотрел её, пропуская большинство доказательств. Сразу возник вопрос: а для чего оно всё это вообще нужно? Где есть какие-нибудь практические результаты?


Представь себе понятие "контейнер" и "итератор". В современных языках программирования — это нечто крайне конкретное. В яве это Iteratable и Iterator интерфейсы. Если javac их встретил — он понял, что это контейнер и по нему можно итерировать специальной конструкцией языка. В C# это IEnumerable и так далее.
А есть в языках программирование понятие контейнера и итератора как таковое, не привязанное к конкретной реализации?
Сейчас — нету.
Можно написать подобный компилятор (скажем, для переделывания Java в C# и пр.). У неё будет понятие "контейнер вообще" и "итератор вообще". И частные реализации этих вещей в яве и c#. Теперь мы в неё решили добавить ещё компиляцию в Ada, или решили добавить поддержку Enumeration из явы, чтоб она его тоже понимала как итератор. А ещё мы в ней захотели добавить к понятию контейнера ordered и unordered контейнеры, thread-safe и не-safe, итерирование с начала в конец и с конца в начало для ordered контейнеров и так далее.
У тебя в мозгу все эти понятия есть. А у компьютера нету. Их туда надо вводить, и если ты будешь вводить их ad-hoc, ручками каждый случай — ты уже даже с контейнерами запаришься, настолько этих понятий будет много и между ними будет куча связей. Ты когда учишь новый язык — ты же просто привязываешь понятия из этого языка к уже имеющимся у тебя понятиям из знакомых тебе языков программирования, или создаёшь у себя новое понятие, и опять-же связываешь его со знакомыми тебе. А в процессе написания кода и использования этого нового языка — ты обнаруживаешь новые и новые связи, возможности по использованию и специфике этих новых понятий. Как сказал Фейнман — "понять — это свести к привычному, плюс умение им пользоваться". То есть ты либо сводишь понятия к знакомым тебе понятиям (которыми ты уже умеешь пользоваться), либо сделать несводимое к старому — привычным, и научиться им пользоваться.

Вот там в диссертации предложен один из подходов, как создать некую "базу знаний" о "понятиях" и их "связях", и возможность используя эту базу знаний выводить новые связи между понятиями. Как в прологе выводятся новые факты из уже имеющейся базы знаний. Ты добавляешь новое понятие или новое свойство (New), связываешь его с чем-то уже там имеющимся (Old1), и компьютер автоматически получает возможность связать это новое понятие с другими понятиями (Old2, Old2), за счёт имеющихся уже у него связей между Old1 и Old2 и Old3.

Для современых технологий, с фиксированной убогой семантикой, это в общем-то не нужно. Но если ты делаешь расширяемую систему мета-программирования, вроде SymADE или MPS или IP — то это поможет превратить такую среду/IDE из просто средства создания DSL-ей в среду которая на 90% уберёт кодирование. Так же как ты сейчас не заморачиваешься низкоуровневой оптимизацией кода на ассемблере, так через надцать лет программисты не будут заморачиваться кодированием.

Вот для этого оно нужно.
SOP & SymADE: http://symade.tigris.org , блог http://mkizub.livejournal.com
Re[3]: Выкинь UML, забудь C#
От: LaptevVV Россия  
Дата: 22.01.09 07:01
Оценка:
Здравствуйте, mkizub, Вы писали:

M>Представь себе понятие "контейнер" и "итератор". В современных языках программирования — это нечто крайне конкретное. В яве это Iteratable и Iterator интерфейсы. Если javac их встретил — он понял, что это контейнер и по нему можно итерировать специальной конструкцией языка. В C# это IEnumerable и так далее.

M>А есть в языках программирование понятие контейнера и итератора как таковое, не привязанное к конкретной реализации?
M>Сейчас — нету.
Ты будешь смеяться, но я как раз сейчас такой язык определяю и собираюсь реализовать...
Именно отсутствие обобщенного понятия "контейнер" не устраивает меня в частности и в Обероне тоже.
Причем, первый раз я написал об это еще в 95 году.
M>У тебя в мозгу все эти понятия есть. А у компьютера нету. Их туда надо вводить, и если ты будешь вводить их ad-hoc, ручками каждый случай — ты уже даже с контейнерами запаришься, настолько этих понятий будет много и между ними будет куча связей. Ты когда учишь новый язык — ты же просто привязываешь понятия из этого языка к уже имеющимся у тебя понятиям из знакомых тебе языков программирования, или создаёшь у себя новое понятие, и опять-же связываешь его со знакомыми тебе. А в процессе написания кода и использования этого нового языка — ты обнаруживаешь новые и новые связи, возможности по использованию и специфике этих новых понятий. Как сказал Фейнман — "понять — это свести к привычному, плюс умение им пользоваться". То есть ты либо сводишь понятия к знакомым тебе понятиям (которыми ты уже умеешь пользоваться), либо сделать несводимое к старому — привычным, и научиться им пользоваться.
СУПЕР!!!!
M>Вот там в диссертации предложен один из подходов, как создать некую "базу знаний" о "понятиях" и их "связях", и возможность используя эту базу знаний выводить новые связи между понятиями. Как в прологе выводятся новые факты из уже имеющейся базы знаний. Ты добавляешь новое понятие или новое свойство (New), связываешь его с чем-то уже там имеющимся (Old1), и компьютер автоматически получает возможность связать это новое понятие с другими понятиями (Old2, Old2), за счёт имеющихся уже у него связей между Old1 и Old2 и Old3.
Блин, очень напоминает Евриско Лената...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Выкинь UML, забудь C#
От: mkizub Литва http://symade.tigris.org
Дата: 22.01.09 11:35
Оценка:
Здравствуйте, LaptevVV, Вы писали:

M>>А есть в языках программирование понятие контейнера и итератора как таковое, не привязанное к конкретной реализации?

M>>Сейчас — нету.
LVV>Ты будешь смеяться, но я как раз сейчас такой язык определяю и собираюсь реализовать...
LVV>Именно отсутствие обобщенного понятия "контейнер" не устраивает меня в частности и в Обероне тоже.
LVV>Причем, первый раз я написал об это еще в 95 году.

И как планируется реализовать это? Что вообще будет компилятор уметь делать с контейнерами, будет у них набор фиксированных свойств или они будут расширяемые. Или это будет просто аналог хаскелевского класса?
SOP & SymADE: http://symade.tigris.org , блог http://mkizub.livejournal.com
Re[5]: Выкинь UML, забудь C#
От: LaptevVV Россия  
Дата: 23.01.09 07:10
Оценка:
Здравствуйте, mkizub, Вы писали:

M>И как планируется реализовать это? Что вообще будет компилятор уметь делать с контейнерами, будет у них набор фиксированных свойств или они будут расширяемые. Или это будет просто аналог хаскелевского класса?

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