Sergey Dmitriev ([info]sergeydmitriev) wrote,
@ 2004-11-16 13:15:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:language_oriented_programming

Новый подход к программированию - статья
Мы только что сделали первый выпуск журнала "onBoard" и там размещена моя статья о "языково-ориентированном программировании" (LOP). В этой статье излагаются основные принципы LOP и также кратко описывается система MPS, реализующая этот подход.



(Post a new comment)


(Anonymous)
2004-11-17 11:14 am UTC (link)
Здесь (http://www.theserverside.com/news/thread.tss?thread_id=30004) уже знают.

(Reply to this)


[info]cousin_it
2004-11-18 10:36 pm UTC (link)
Some notes.


Today, ninety-nine percent of programmers think programming means writing out a set of instructions for the computer to follow.

Lisp macros or C++ templates are instructions for the compiler to follow.


As features are added to the language, it becomes increasingly difficult to add new extensions without making the language ambiguous. We would need to invent more types of brackets, operators, keywords, rules of ordering, nesting, etc.

Definitely not the case with Lisp or Scheme.


A good example of this today is an Excel spreadsheet. Ninety-nine percent of people don’t need to deal with the stored format at all, and there are always import and export features when the issue comes up. The only real reason we use text today is because we don’t have any better editors than text editors.

1) Collaborative work. Try storing an Excel file in CVS and running diffs (received by email) against it.

2) Platform neutrality and interoperability of tools.

3) People are very good at languages. I would be stumped to draw a graph of a program of average complexity.


Its structure defines its abstract syntax, what concepts are supported and how they can be arranged. Its editor defines its concrete syntax, how it should be rendered and edited.

The two should be decoupled. If the designers of Java had standardized upon an editor, you wouldn't have been able to write IDEA.


So you can add the power of today’s editors, like IntelliJ IDEA, to your own custom languages.

Would IDEA be useful for Forth code? For a logic language like Prolog? For Smalltalk? Exactly what power are you talking about, the ability to do Extract Method refactorings?

(Reply to this)(Thread)


[info]_qwerty
2004-11-20 02:24 am UTC (link)
Мне кажется, что статейка сильно попорчена маркетингом :) Хорошо, конечно, объявить всему миру, что найдено наконец лекарство от всех бед, но на самом-то деле речь идет о вполне скромном построении удобного открытого и расширяемого внутреннего представления для Идеи. В глобальность и универсальность лично мне как-то не верится. За примерами далеко ходить не нужно.

(Reply to this)(Parent)(Thread)


[info]cousin_it
2004-11-20 06:24 pm UTC (link)
Um, yeah, right.

The world already has a language ideally suited to "language oriented programming". It's called Common Lisp. And there are perfectly rational reasons why it isn't so widely used.

(Reply to this)(Parent)(Thread)


(Anonymous)
2004-11-21 01:43 pm UTC (link)
Помоему ты путаешь кое-что.

В Lisp подобных языках макросы подставляют вместо одного другое. Такой способ не всегда самый естественный. И далеко не единственный.

(Reply to this)(Parent)(Thread)


[info]cousin_it
2004-11-21 03:11 pm UTC (link)
What's your point? Lisp's iteration primitive (LOOP), object system (CLOS) and exception handling (conditions) are written in Lisp; you don't get much more "language oriented", no?

(Reply to this)(Parent)(Thread)


(Anonymous)
2004-11-23 04:20 pm UTC (link)
Хочется не просто чтобы язык был, а чтобы получившийся код был эффективным, выглядил красиво. На C-шных макросах тоже очень много всего интересного можно написать, почему тогда C не подходят для LOP? Или C++ templates, на них даже можно писать нетривиальные генераторы, считать что-то во время компиляции, и.т.п. Только почему-то этим мало кто пользуется, т.к. это неудобно и очень сложно.

(Reply to this)(Parent)(Thread)


[info]cousin_it
2004-11-23 08:27 pm UTC (link)
The comparisons to CPP and templates sound a bit misguided. You've got to try Lisp macros =)

(Reply to this)(Parent)(Thread)


(Anonymous)
2004-11-24 07:46 pm UTC (link)
Неправда.

Есть хорошая книжка Generative Programming.
Там есть глава о том как можно писать очень нетривиальные генераторы на шаблонах. Это не просто подстановка макросов, как в лиспе.

(Reply to this)(Parent)(Thread)


[info]cousin_it
2004-11-26 03:49 am UTC (link)
ok ok i didn't mean to start a language war, feeling a bit ashamed now


but are you sure about the "simple substitution" bit?

lisp code is explicitly structured as nested lists (a kinda abstract syntax tree on paper)

lisp macros are not substitutions, but TRANSFORMATIONS of code-as-lists, using arbitrary lisp code run at compile-time

you can tell the macro to send an email at compile time if it finds an F-word in the code, try that with C++ templates =)

and yeah, i have seen interesting applications of C++ templates

e.g. Alexandrescu's typelists =)

(Reply to this)(Parent)


[info]_qwerty
2004-11-24 01:37 am UTC (link)
Я подозреваю, что базовое предположение в статейке таково: прикладной программист знает, на каком языке ему лучше писать задачу, только не умеет написать парсер. И если его от этой необходимости избавить, а всю соответствующую работу перенести из языка в рабочее окружение, то все сразу расцветет пышным цветом.

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

(Reply to this)(Parent)(Thread)


[info]cousin_it
2004-11-24 09:27 am UTC (link)
precisely

an SQL parser for Java won't help you much

(Reply to this)(Parent)(Thread)


[info]_qwerty
2004-11-24 08:01 pm UTC (link)
Ага. И если человек не может или не желает придумывать свой синтаксис и писать парсер, то это не потому, что это сложно, а потому, что у этого человека есть смутное недовольство и томление, а ясного представления, чего ему хочется, и желания это реализовать нет.

Тем не менее, могу найти как минимум 3 практических пользы от заведения открытого расширяемого внутреннего представления в Идее:
1. Внутренняя польза - хорошая основа для дальнейшего развития Идеи.
2. Снабдить работой народ, который будет заниматься настройкой и расширением Идеи под заказчика. Народ этоть может и не иметь отношения к разработчикам Идеи.
3. Польза для тупых дятлов - можно поставить галочку напротив фичи, которой нет у конкурентов.

(Reply to this)(Parent)(Thread)


[info]cousin_it
2004-11-26 03:51 am UTC (link)
yeah

#3: don't use logic, use marketing

(Reply to this)(Parent)


[info]_qwerty
2004-11-23 02:10 am UTC (link)
Это все понятно. Равно как и то, что даже и никакого аналога CLR усилиями небольшой конторы нынче не продавить.

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

(Reply to this)(Parent)(Thread)


[info]cousin_it
2004-11-23 08:31 pm UTC (link)
There are major psychological milestones on that road =(

For example, at some point Sergey is bound to say, "oh no, I don't do dynamically typed languages". Or, "languages with continuations". Or "languages with weird argument-passing conventions" (optional and rest arguments, or destructuring the argument list). Languages aren't skin deep.

(Reply to this)(Parent)(Thread)


[info]_qwerty
2004-11-24 01:29 am UTC (link)
1. Я не думаю, что дело в психологических препятствиях. Хот яв тексте статейки ничто о том не говорит, разумно расматривать ее исключительно в контексте ее приложения. Человек пишет о том, чем он занимается, а занимается он Идеей.

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

(Reply to this)(Parent)


[info]krlz
2004-12-31 07:25 pm UTC (link)
Вообще такое ощущение, что товарищи, комментирующие эту статью подразумевают то что им хочется. Товарищ _qwerty подразумевает внутреннее представление, а товарищ cousin_it замену макросам лиспу. Помоему LOP ни тем не другим не является :-)

(Reply to this)(Thread)


[info]_qwerty
2005-02-19 02:04 am UTC (link)
Да, она является лишь слабым, убогим и с рождения ограниченным подобием и того и другого. Благо то и другое есть всего лишь две стороны одного и того же. На сегодняшний момент никакой разумной альтернативы тексту не существует. И нечего бояться парсеров.

(Reply to this)(Parent)


[info]_qwerty
2005-02-19 01:59 am UTC (link)
Почитай почту или асю и запишись на VEE'05.

First ACM/USENIX International Conference on
Virtual Execution Environments (VEE'05)

joining ACM SIGPLAN IVME and USENIX VM,
Sponsored by ACM SIGPLAN and USENIX
in cooperation with ACM SIGOPS
June 11-12, 2005, Chicago, Ill
www.veeconference.org

Туда-сюда, то да сё,

Papers are solicited in areas including, but not limited to, the
following:
...
* Environment support for new languages features,
domain specific languages
...

Program Committee: Steering Committee:
Разные классики, среди которых я лично знаю и очень рекомендую:
Ole Agesen, VMWare
Hans Boehm, HP Labs
Michal Cierniak, Microsoft
Dave Detlefs, Sun
Mario Wolczko, SUN
Richard Jones, U. Kent
Doug Lea, SUNY, Oswego
Xavier Leroy, INRIA
Mendel Rosenblum, Stanford
Michael Smith, Harvard

(Reply to this)

"vete y vive" and i?ve loved it and your play, surfing on internet ,
(Anonymous)
2007-05-16 06:55 pm UTC (link)
a long ago for you was not
good resource a colour gamut and pictures is class neat let us help each other
< a href= http://gratis-porn.premium10adult.info/classic-porn-star.html >classic porn star </a> all right I went away to meeting

(Reply to this)

Как заработать в Интернетe Новичку
(Anonymous)
2007-05-30 12:09 pm UTC (link)
Как заработать в Интернете Новичку. Без вложений и затрат. Все объясняется буквально на пальцах-ну ОЧЕНЬ просто. Идеально подходит для новичков. Конкретные схемы, приемы, методы, которые помогут Вам организовать такую бизнес структуру, которая будет работать автономно 24 часа в сутки, без Вашего участия, и приносить Вам стабильный доход.

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

Скачайте БЕСПЛАТНО книгу по следующей ссылки:

http://kajfa.net/book1.zip

Приятного Вам чтения!

С уважением,
Владимир.

(Reply to this)

Любовная магия. Привороты.
(Anonymous)
2007-06-12 08:32 pm UTC (link)
MESSAGE

(Reply to this)

Give me link to xrumer 3.0 program
(Anonymous)
2007-06-15 08:41 am UTC (link)
Who know some info about XRumer? Or website with description...

It's very interesting program, but I forgot url :(

help me!!!

P.S. Hmmm... this forum category is interesting and sometimes funny ;)







(Reply to this)

Порча на смерть
(Anonymous)
2007-06-16 09:56 pm UTC (link)
MESSAGE

(Reply to this)

n
(Anonymous)
2007-06-17 08:32 am UTC (link)

.G'night





(Reply to this)

All sportsmen use drugs.
(Anonymous)
2007-06-23 10:01 pm UTC (link)
MESSAGE

(Reply to this)

Обучение Черной Магии и Магические услуги
(Anonymous)
2007-06-26 05:18 pm UTC (link)
MESSAGE

(Reply to this)

Mambo pharma links
(Anonymous)
2007-06-29 10:43 am UTC (link)
MESSAGE

(Reply to this)

#hostname - great site !
(Anonymous)
2007-07-31 01:06 pm UTC (link)
sergeydmitriev.livejournal.com - the best site !


I like your fine site - sergeydmitriev.livejournal.com .
Thank for your help for us!
I think it wasnt easy to post here so much information.

Best Regards

Dolly

(Reply to this)

Рассылки по форумам, гостевым
(Anonymous)
2007-08-03 04:40 pm UTC (link)
Рассылки по форумам, гостевым, блогам, wiki, доскам объявлений, регистрация в каталогах. Предоставление полного отчета по окончанию рассылки.
Обход практически любых защит. Типы рассылки: регистрация+постинг, редактирование разосланных постов, регистрация на форуме с редактированием профайла пользователя, добавление ответов в разосланные посты.
Цены на рассылку в форумы:
1000 Гостевых/блогов/wiki = 5$
1000 Форумов/досок = 10$
1000 Каталогов = 20$
Возможна рассылка как по смешанным так и по целевым базам.
Сбор индивидуальных баз рассылки для клиента.
Контактные данные:
e-mail: Mustang_2009@mail.ru
ICQ: 413-904

(Reply to this)

Сенсация! Жириновский опередил Медведева на предварит
(Anonymous)
2008-02-21 02:09 am UTC (link)
Ну вот по последним опросам Жириновский набирает 41% избирателей, в то время как Медведев - 40%, остальные не набирают и 4%. Против всех 7%.
Подробнее о сенсации здесь: http://presidents2008.narod.ru/index.html
Так же вы узнаете все секреты современных политиков и оллигархов!





(Reply to this)

Для мобильных телефонов - java игры, темы, видео 3gp, Mp3.
(Anonymous)
2008-03-06 06:54 am UTC (link)
Отличный ссайт на катором можно скачать: java игры, фильмы, мультфильмы, видеоклипы для телефонов, смартфонов, КПК, видео приколами 3gp, мелодий Mp3, клёвые темки и картинки для мобильных телефонов разных моделей. Постоянно обновляется!
Всем советую;)
http://mobilrai.com





(Reply to this)

бесплатные порно видео ролики скачать
(Anonymous)
2008-04-04 08:31 am UTC (link)
гляньте http://porno-online.tv/ - бесплатное порно скачать

(Reply to this)


Create an Account
Forgot your login?
Login w/ OpenID
English • Español • Deutsch • Русский…