Раскрутка и мощь языков
От: anokata  
Дата: 23.05.11 09:43
Оценка:
Меня всегда удивляет почему многие компиляторы/интерпретаторы языков программирования (и среды для них и софт) написаны на С, С++ , а не на них самих. Почем так редко применяют раскрутку компилятора? или я неправо? К тому же там где применяют не редко остаётся ядро на С.
Неужели это свидетельствует о их слабости или недоразвитости? или просто на остальных ЯВУ трудно писать компиляторы?
Единственно вижу что на хаскеле пишут другие языки, но он опять же частично написан на С. Есть другие примеры?
Буду программировать и переводить с японского за еду. Предложения принимаются.
яп раскрутка
Re: Раскрутка и мощь языков
От: adontz Грузия http://adontz.wordpress.com/
Дата: 23.05.11 09:44
Оценка:
Здравствуйте, anokata, Вы писали:

Это вопрос количества наработок в области компиляторов для конкретных языков, а не качества самих языков.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Раскрутка и мощь языков
От: Temoto  
Дата: 23.05.11 09:55
Оценка:
A>Меня всегда удивляет почему многие компиляторы/интерпретаторы языков программирования (и среды для них и софт) написаны на С, С++ , а не на них самих. Почем так редко применяют раскрутку компилятора? или я неправо? К тому же там где применяют не редко остаётся ядро на С.
A>Неужели это свидетельствует о их слабости или недоразвитости? или просто на остальных ЯВУ трудно писать компиляторы?
A>Единственно вижу что на хаскеле пишут другие языки, но он опять же частично написан на С. Есть другие примеры?

Действительно, неужели это о чём-то вообще свидетельствует? Какая у вас проблема с ядром на си/++?
Re[2]: Раскрутка и мощь языков
От: anokata  
Дата: 23.05.11 10:00
Оценка:
Здравствуйте, Temoto, Вы писали:

A>>Меня всегда удивляет почему многие компиляторы/интерпретаторы языков программирования (и среды для них и софт) написаны на С, С++ , а не на них самих. Почем так редко применяют раскрутку компилятора? или я неправо? К тому же там где применяют не редко остаётся ядро на С.

A>>Неужели это свидетельствует о их слабости или недоразвитости? или просто на остальных ЯВУ трудно писать компиляторы?
A>>Единственно вижу что на хаскеле пишут другие языки, но он опять же частично написан на С. Есть другие примеры?

T>Действительно, неужели это о чём-то вообще свидетельствует? Какая у вас проблема с ядром на си/++?


может и так.. Просто мне это кажется странным. особенно для очень развитых представителей.
Мне кажется что наличие исходников языка на самом себе показывает как минимум его самодостаточность..
Буду программировать и переводить с японского за еду. Предложения принимаются.
Re[3]: Раскрутка и мощь языков
От: samius Япония http://sams-tricks.blogspot.com
Дата: 23.05.11 10:09
Оценка: +2
Здравствуйте, anokata, Вы писали:

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


T>>Действительно, неужели это о чём-то вообще свидетельствует? Какая у вас проблема с ядром на си/++?


A>может и так.. Просто мне это кажется странным. особенно для очень развитых представителей.

A>Мне кажется что наличие исходников языка на самом себе показывает как минимум его самодостаточность..
А что с ней делать с этой самодостаточностью?
Re: Раскрутка и мощь языков
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 23.05.11 10:10
Оценка: 1 (1) +2
Здравствуйте, anokata, Вы писали:

A>Меня всегда удивляет почему многие компиляторы/интерпретаторы языков программирования (и среды для них и софт) написаны на С, С++ , а не на них самих. Почем так редко применяют раскрутку компилятора? или я неправо? К тому же там где применяют не редко остаётся ядро на С.


Ядро на Си или близком к тому языке необходимо потому, что средства взаимодействия с внешней средой (ОС и прочее), как правило, реализованы в первую очередь в интерфейсе для Си. Особенно это характерно для Unix мира.

Вообще общего правила нет. Например, Erlang использует самораскрутку: для компиляции его рабочего кода используются уже собранные в поставке beam'ы компилятора. С другой стороны, С сам по себе сейчас обычно использует самораскрутку процентов на 99.9, легче сделать кросс-компилятор для первого внедрения, чем рисовать всё это на ассемблере.

A>Неужели это свидетельствует о их слабости или недоразвитости? или просто на остальных ЯВУ трудно писать компиляторы?


Может, это просто не их целевая ниша?
Не вопрос написать такой компилятор и среду, но им может чего-то не хватать.
The God is real, unless declared integer.
Re[3]: Раскрутка и мощь языков
От: Temoto  
Дата: 23.05.11 10:10
Оценка: +3 :)
T>>Действительно, неужели это о чём-то вообще свидетельствует? Какая у вас проблема с ядром на си/++?

A>может и так.. Просто мне это кажется странным. особенно для очень развитых представителей.

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

Показывает. А вот насчёт "как минимум" — тут всё зависит от целей, которые преследовали авторы. Для практичных языков самодостаточность — последнее дело, они и так уже решают поставленные задачи. Языкам "ради искусства" и "двигающим науку вперед" self-hosted компилятор, конечно, необходим в качестве аргумента в споре "кто круче".
Re: Раскрутка и мощь языков
От: BulatZiganshin  
Дата: 23.05.11 10:19
Оценка: 5 (2)
Здравствуйте, anokata, Вы писали:

A>Меня всегда удивляет почему многие компиляторы/интерпретаторы языков программирования (и среды для них и софт) написаны на С, С++ , а не на них самих. Почем так редко применяют раскрутку компилятора? или я неправо? К тому же там где применяют не редко остаётся ядро на С.

A>Неужели это свидетельствует о их слабости или недоразвитости? или просто на остальных ЯВУ трудно писать компиляторы?

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

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

3. компиляторы пишут очень квалифицированные специалисты

A>Единственно вижу что на хаскеле пишут другие языки, но он опять же частично написан на С. Есть другие примеры?


ghc вроде целиком на хаскеле написан. на C там RTS
Люди, я люблю вас! Будьте бдительны!!!
Re: Раскрутка и мощь языков
От: x-code  
Дата: 23.05.11 10:59
Оценка: :)))
Здравствуйте, anokata, Вы писали:

A>Меня всегда удивляет почему многие компиляторы/интерпретаторы языков программирования (и среды для них и софт) написаны на С, С++ , а не на них самих. Почем так редко применяют раскрутку компилятора? или я неправо? К тому же там где применяют не редко остаётся ядро на С.

A>Неужели это свидетельствует о их слабости или недоразвитости? или просто на остальных ЯВУ трудно писать компиляторы?
A>Единственно вижу что на хаскеле пишут другие языки, но он опять же частично написан на С. Есть другие примеры?

Потому что Си (а также С++, D, ObjC, Java, C#, Delphi и т.п.) — нормальные языки, понятные и удобные для реального, практического, старого доброго программирования.
А хаскели и прочее — это абстрактная околоматематическая сущность. Вроде матлаба или чего-то типа того. ИМХО, в большинстве случаев это даже не "языки программирования", а скорее средства компьютерного моделирования какой-то математической парадигмы или теории. По крайней мере, их разработчики точно не ставят целью создание языка, на котором можно писать к примеру ядра операционных систем или навороченные GUI приложения.
Разумеется, в них есть польза, и немалая — например, что с их помощью можно создавать, исследовать и обкатывать новые концепции и парадигмы, которые затем можно встроить в нормальные языки (пример тому — функциональное программирование — лямбды и прочее, которое уже "обкатано" и сейчас прекрасно вписывается в старую добрую классическую модель реального, практического программинга).
Re[2]: Раскрутка и мощь языков
От: BulatZiganshin  
Дата: 23.05.11 11:55
Оценка:
Здравствуйте, x-code, Вы писали:

XC>А хаскели и прочее — это абстрактная околоматематическая сущность. Вроде матлаба или чего-то типа того. ИМХО, в большинстве случаев это даже не "языки программирования", а скорее средства компьютерного моделирования какой-то математической парадигмы или теории. По крайней мере, их разработчики точно не ставят целью создание языка, на котором можно писать к примеру ядра операционных систем


это точно. как-то не самая частая задача

XC>или навороченные GUI приложения.


в подписи
Люди, я люблю вас! Будьте бдительны!!!
Re[4]: Раскрутка и мощь языков
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.05.11 19:39
Оценка: +2
Здравствуйте, samius, Вы писали:

A>>может и так.. Просто мне это кажется странным. особенно для очень развитых представителей.

A>>Мне кажется что наличие исходников языка на самом себе показывает как минимум его самодостаточность..
S>А что с ней делать с этой самодостаточностью?

Это как минимум отличный тест компилятора. Компиляторы не мальенькие по объему программы.

Потом автор языка (если он сам пишет компилятор) получает неоценимый опыт использования языка. А это положительно влияет на дизайн языка. В него реже попадают вещи для галочки, и чаще появляются нужные и удобные вещи.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Раскрутка и мощь языков
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.05.11 19:41
Оценка:
Здравствуйте, netch80, Вы писали:

N>Ядро на Си или близком к тому языке необходимо потому, что средства взаимодействия с внешней средой (ОС и прочее), как правило, реализованы в первую очередь в интерфейсе для Си. Особенно это характерно для Unix мира.


О — это так надо для компилятора, которому для работы нужно уметь читать и писать файлы. Их же на других языках ведь не прочитаешь .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Раскрутка и мощь языков
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.05.11 19:55
Оценка:
Здравствуйте, anokata, Вы писали:

A>Меня всегда удивляет почему многие компиляторы/интерпретаторы языков программирования (и среды для них и софт) написаны на С, С++ , а не на них самих. Почем так редко применяют раскрутку компилятора? или я неправо? К тому же там где применяют не редко остаётся ядро на С.

A>Неужели это свидетельствует о их слабости или недоразвитости? или просто на остальных ЯВУ трудно писать компиляторы?
A>Единственно вижу что на хаскеле пишут другие языки, но он опять же частично написан на С. Есть другие примеры?

Все очень просто. Бутстрапинг — это геморрой в начальной стадии проекта. Ведь очень легко получить компилятор которым нельзя будет скомпилировать самого себя. По сему нужна многопроходная (хотя бы двупроходная) компиляция. Усиленное тестирование.

Вторая причина — это сложность переноса на другие платформы. Если компилятор написан на С и это нэйтив-компилятор, то перенести его на другую платформу (в идеале) можно тупой перекомпиляцией.

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

Бутстрапинг очень полезен по двум причинам.
1. Это отличный тест самого компилятора. Причем тест который постоянно развивается.
2. Это возможность создателям языка больше использовать этот самый язык. А без этого трудно сделать язык который был бы нужен другим.

На самом деле почти все популярные сегодня языки когда-то бутсрапились или стремятся к этому. Вот тут
Автор: x-code
Дата: 23.05.11
товарищ перечислял "нормальные языки", по его мнению, языки (С++, D, ObjC, Java, C#, Delphi). Так среди них только C# и D не бутстрапились. Причем для C# уже пишется компилятор на C#, а D в этот список явно попал случайно (так как под нормальными языками явно понимаются популярные ныне или в недавнем прошлом).

А вот с D все сложнее. Его автор хотел создать лучшего потомка С, но пока что народ его не воспринимает. И, возможно, что от части происходит это потому, что D не пишется на D.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Оффтоп
От: Jack128  
Дата: 23.05.11 20:28
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>На самом деле почти все популярные сегодня языки когда-то бутсрапились или стремятся к этому. Вот тут
Автор: x-code
Дата: 23.05.11
товарищ перечислял "нормальные языки", по его мнению, языки (С++, D, ObjC, Java, C#, Delphi). Так среди них только C# и D не бутстрапились. Причем для C# уже пишется компилятор на C#, а D в этот список явно попал случайно (так как под нормальными языками явно понимаются популярные ныне или в недавнем прошлом).


Разве дельфи бутстрапили?? Его компилер на плюсах же написан. IDE — да, на дельфи, а компилер на плюсах.
Re[2]: Раскрутка и мощь языков
От: MasterZiv СССР  
Дата: 23.05.11 20:51
Оценка:
On 23.05.2011 14:59, x-code wrote:

> Потому что Си (а также С++, D, ObjC, Java, C#, Delphi и т.п.) — нормальные

> языки, понятные и удобные для реального, практического, старого доброго
> программирования.
> А хаскели и прочее — это абстрактная околоматематическая сущность. Вроде матлаба

Ты вспомни эти свои слова, когда всякие хаскели будут стрелять в 200 ядер со
скоростью заоблачной, а С в это время только успеет скомпилироваться (на одном
ядре).
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Раскрутка и мощь языков
От: Temoto  
Дата: 23.05.11 20:59
Оценка:
>> Потому что Си (а также С++, D, ObjC, Java, C#, Delphi и т.п.) — нормальные
>> языки, понятные и удобные для реального, практического, старого доброго
>> программирования.
>> А хаскели и прочее — это абстрактная околоматематическая сущность. Вроде матлаба

MZ>Ты вспомни эти свои слова, когда всякие хаскели будут стрелять в 200 ядер со

MZ>скоростью заоблачной, а С в это время только успеет скомпилироваться (на одном
MZ>ядре).

Думаете до пенсии увидим такое?
Re[5]: Раскрутка и мощь языков
От: samius Япония http://sams-tricks.blogspot.com
Дата: 23.05.11 21:47
Оценка: +1
Здравствуйте, VladD2, Вы писали:

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


A>>>может и так.. Просто мне это кажется странным. особенно для очень развитых представителей.

A>>>Мне кажется что наличие исходников языка на самом себе показывает как минимум его самодостаточность..
S>>А что с ней делать с этой самодостаточностью?

VD>Это как минимум отличный тест компилятора. Компиляторы не мальенькие по объему программы.

Вот допустим, ушел в монастырь писать компилятор блаб на блаб-е. Написал, вышел, кому стало легче?

VD>Потом автор языка (если он сам пишет компилятор) получает неоценимый опыт использования языка. А это положительно влияет на дизайн языка. В него реже попадают вещи для галочки, и чаще появляются нужные и удобные вещи.

Нужные и удобные для написания компилятора? А если язык создавался с другой целью, то именно вещи для компилятора будут для галочки, а нужные и удобные будут слиты.
Re[3]: Оффтоп
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.05.11 22:11
Оценка:
Здравствуйте, Jack128, Вы писали:

J>Разве дельфи бутстрапили?? Его компилер на плюсах же написан. IDE — да, на дельфи, а компилер на плюсах.


Еще со времен паскаля они писали компиляторы на нем же. Потом, правда, бросили (если не ошибаюсь).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Раскрутка и мощь языков
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.05.11 22:19
Оценка: 1 (1) +1
Здравствуйте, samius, Вы писали:

S>Вот допустим, ушел в монастырь писать компилятор блаб на блаб-е. Написал, вышел, кому стало легче?


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

VD>>Потом автор языка (если он сам пишет компилятор) получает неоценимый опыт использования языка. А это положительно влияет на дизайн языка. В него реже попадают вещи для галочки, и чаще появляются нужные и удобные вещи.

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

Можно поинтересоваться какие из специализированных фич для написания компиляторов ты знаешь? Другими словами, о чем идет речь то?

Компилятор — это такая же программа как и все другие. Если ее удобно писать, то будет удобно писать и многие другие программы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Раскрутка и мощь языков
От: samius Япония http://sams-tricks.blogspot.com
Дата: 23.05.11 23:47
Оценка: +1
Здравствуйте, VladD2, Вы писали:

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


S>>Вот допустим, ушел в монастырь писать компилятор блаб на блаб-е. Написал, вышел, кому стало легче?


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

Не могу понять, что ты не смог на русском понять.

VD>>>Потом автор языка (если он сам пишет компилятор) получает неоценимый опыт использования языка. А это положительно влияет на дизайн языка. В него реже попадают вещи для галочки, и чаще появляются нужные и удобные вещи.

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

VD>Можно поинтересоваться какие из специализированных фич для написания компиляторов ты знаешь? Другими словами, о чем идет речь то?

Про специализированные я ничего не говорил, а вот удобными были бы АлгТД, ПМ, лямбды.

VD>Компилятор — это такая же программа как и все другие. Если ее удобно писать, то будет удобно писать и многие другие программы.

Язык прежде всего должен делать удобным то, для чего он предназначен. И чем уже его предназначение, тем неудобнее будет на нем писать что-либо другое, и наоборот. Хаскель удобен для написания компилятора, но почему-то скрипты для винды пишут на повершеле а геймдев на С++ в своем большинстве.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.