
![]() |
|
|
![]() |
![]() |
|
Страницы: (3) 1 2 [3] ( Перейти к первому непрочитанному сообщению ) | ![]() ![]() ![]() |
sensey |
3.05.2009 - 00:45 (ссылка на это сообщение)
|
||
![]() Аспирант ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 191 Регистрация: 6.06.2005 Репутация: 16 Место учебы: ОрелГТУ ![]() |
Язык определяет сознание и мышление. Поэтому рациональнее всего писать программу в терминах задачи (предметной области). Поэтому в идеале каждой проблеме -- свой язык. (при этом язык должен быть адекватен предметной области а так же компактен и ортогонален). Поэтому существует (и, надо сказать, процветает) методология метапрограммирования и проблемно-ориентированных языков (Domain Specific Language).
Реализуются DSL при помощи кодогенераторов или на основе языков функционального программирования. Есть современные языки, типа Scala (на платформе Java) или Ruby или Python, которые позволяют совмещать функциональный и императивный стиль. Программы, написанные в функциональном стиле наиболее компактны и наглядны. Напр. я видел программку на Lisp-е в несколько строчек которая умела дифференцировать и интегрировать аналитические функции, заданные их алгебраическим выражением. Аналогичная программа на С/C++ потребовала бы на порядки (!!) больше кода со всеми вытекающими отсюда последствиями. В общем, уважаемый топикстартер, рекомендую к прочтению классику. Напр. : Эрик Рэймонд. Искусство программирования для UNIX Ахо А. Структуры данных и алгоритмы Знаменитый 4-томник Дональда Кнута. Кстати основным языком описания программ у Кнута является естесвенный язык (близкий к функциональному), а не алгоритмический. А так же: http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%...%BD%D0%B8%D0%B5 http://offline.computerra.ru/2006/630/258015/ http://en.wikipedia.org/wiki/Domain-specific_language http://www.interface.ru/home.asp?artId=16215 И помните: всегда востребованы грамотные люди, знающие методологию проектирования, и разработки, способные принимать адекватные решения, а не сodemonkeys, знающие только лишь конкретные технологии. |
||
дед_мажор |
3.05.2009 - 08:53 (ссылка на это сообщение)
|
||
![]() Уважаемый крутой перец ![]() Профиль Группа: Декан Сообщений: 2405 Регистрация: 11.11.2005 Репутация: 156 Место учебы: да ![]() |
dsl без проблем реализуются любым general-purpose объектно-ориентированным языком без необходимости изобретать новый синтаксис. достаточно domain-specific классов с fluent-интерфейсом, позволяющим осуществлять конфигурацию. почти каждая domain-specific библиотека, каждый domain-specific framework — это dsl. хороший пример — web-фреймворк onPHP, onphp.org, некоторые компоненты которого являются dsl. правило оккама гласит, что не нужно плодить лишнего без крайней надобности. и это называется embedded dsl. дальнейшее чтение продолжать в блоге у фаулера, который сейчас пишет книгу по этой теме: http://martinfowler.com/dslwip/index.html |
||
BrainDrain |
3.05.2009 - 19:57 (ссылка на это сообщение)
|
||
Кандидат наук ![]() ![]() ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 561 Регистрация: 24.02.2009 Репутация: 33 Место учебы: ОГУ ![]() |
lolwut? чему ортогонален-то? Предметной области? ![]() |
||
БЕ3НОГNM |
3.05.2009 - 20:23 (ссылка на это сообщение)
|
Unregistered Место учебы: ![]() |
wat
|
|
sensey |
4.05.2009 - 18:04 (ссылка на это сообщение)
|
||
![]() Аспирант ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 191 Регистрация: 6.06.2005 Репутация: 16 Место учебы: ОрелГТУ ![]() |
BrainDrain, я имел в виду компактность, концептуальную целостность и ортогональность понятий. В оригинале речь идет об интерфейсах, но я думаю что эти понятия можно применять и к языкам.
|
||
timofeji |
8.05.2009 - 19:06 (ссылка на это сообщение)
|
![]() Абитуриент ![]() Профиль Группа: Пользователи Сообщений: 18 Регистрация: 13.06.2008 Репутация: нет Место учебы: ОрелГТУ ![]() |
sensey что то у меня сомнения закрались о наличие у вас прикладного опыта по данной тематике
|
sensey |
10.05.2009 - 18:41 (ссылка на это сообщение)
|
![]() Аспирант ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 191 Регистрация: 6.06.2005 Репутация: 16 Место учебы: ОрелГТУ ![]() |
timofeji, а я нигде и не утверждал обратного.
В моей предметной области (системы автоматизированного управления, обработка сигналов) тяжело применить что-либо кроме C/Asm/Forth/Fortran. :мечтательно: Вот займусь синтезом ПЛИС и имитационным моделированием, вот тогда-то и откроется простор для использования достижений Computer Science. |
BrainDrain |
20.05.2009 - 09:14 (ссылка на это сообщение)
|
||||
Кандидат наук ![]() ![]() ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 561 Регистрация: 24.02.2009 Репутация: 33 Место учебы: ОГУ ![]() |
Такое применение термина "ортогональность" слегка смутило, потому что ортогональной как правило называется некая пара языков (обычно императив+функционал); такая пара как раз и обладает всеми преимуществами, описанными в том (№41) посте.
Если это именно те задачи, под которые функционал подходит лучше императива,
|
||||
![]() |
![]() ![]() ![]() |