|
Скриптовые языки, что почитать? |
|
|
|
Jan 26 2007, 23:53
|

Профессионал
    
Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380

|
Сама по себе тема поднималась на форуме неоднократно, и сам я немало нафлудил в этих топиках. Речь идет о портировании известных скриптовых языков на МК. Есть немало открытых исходников и готовых портов. Но в данном случае речь идет о теории. Где можно взять инфу по внутреннему устройству интерпретаторов? Задача - научиться самому портировать язык, причем возможно с урезанием функциональности (т.е копанием во внутренностях), на любой кристалл и/или RTOS. Копание вслепую не слишком результативно
--------------------
Вони шукають те, чого нема, Щоб довести, що його не існує.
|
|
|
|
|
 |
Ответов
|
Jan 29 2007, 12:31
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Интерпретатор не так уж сильно зависит от языка программирования. Интерпретатор всего лишь дает некую виртуальную машину. В принципе можно пытаться делать "оптимальный" интерпретатор для каждого языка, но вообще-то это маразм и давно пройденный этап.
Доказательством, что интерпретатор не зависит от языка, являются "обычные" процессоры - ведь под тот же Пентиум есть компиляторы практически с любого языка. Поэтому под полную по Тьюрингу виртуальную машину (т.е. под интерпретатор) в принципе можно написать компилятор с любого языка. Правда, под некоторые виртуальные процы компиляторы будут очень замысловатыми, чему примером небезизвестный проц Брэйнфак.
Главное достоинство интерпретатора состоит в том, что он дает виртуальную машину, (почти ) не зависящую от железа.
Одними из первых до этого допедрили создатели Жабы. Однако с виртуальной машиной Жабы есть некоторые проблемы: полная машина довольно тяжеловесна (типично требует порядка 1М памяти и 32-бит проц). Прежде всего из-за выбранного ООП-подхода и встроенной сборки мусора. Если бы не это, виртуальная машина Жабы еще больше напоминала бы виртуальную машину Форта, т.к. обе суть стековые процессоры, но Форт-машина максимально простая, а Жаба-машина - с наворотами. Есть всевозможные варианты "урезанных Жаб", где прежде всего выбрасывают сборку мусора, но я в них не очень силен. В любом случае это будет кастрированный язык.
Второе достоинство интерпретатора состоит в том, что для хорошей виртуальной машины можно написать транслятор с любого языка. Сановцы до этого не доперли, для своей виртуальной Жаба-машины он предлагают один только язык Жаба. Этим обстоятельством воспользовались мелкомягкие и выкатили свой .NET.
В основе .NET лежит примерно такая же виртуальная машина (интерпретатор), какая используется в Жаба-машине, т.е. стековый проц с ООП наворотами и сборкой мусора. Однако языков под эту машину наплодили тучу. В отличие от Жабы, мелкомягкие, похоже, не имеют намерений "урезать" .NET. Правда, есть умельцы, которые занялись этим самостоятельно (кому интересно - гуглите на слова .NET lego mindstorm).
Форт-машина - одна из самых простых и удобных виртуальных машин. Это тоже стековая машина, как Жаба-машина и .NET-машина, но максимально компактная и упрощенная. Идеально подходит для встроенных применений, но - увы - в отличие от .NET и Жаба-машин, не поддержана доступными высококачественными кросс-трансляторами с удобных ЯВУ. Есть полуоткрытый югославский проект, где они делают Форт-машину с С-кросс-компилятором, но это маргинальные штучки.
Все, что помимо этих трех машин (Жаба, НЕТ, Форт) упоминалось в треде - это все отстой и суксь, имхо. Уродцы, обреченные на вымирание, нечаянно появившиеся в ходе эволюционного процесса, имхо. Там есть достойные изумления экземпляры, такие как проект регистровой виртуальной машины, "Попугай" для Перла, если память не изменяет.
|
|
|
|
Сообщений в этой теме
beer_warrior Скриптовые языки Jan 26 2007, 23:53 ?ELF Цитата(beer_warrior @ Jan 27 2007, 01:53)... Jan 27 2007, 00:28 Olej Цитата(?ELF @ Jan 27 2007, 01:28) Ещё, вр... Jan 27 2007, 22:48  Kopa Цитата(Olej @ Jan 27 2007, 22:48) И Forth... Jan 28 2007, 08:34   Olej Цитата(Kopa @ Jan 28 2007, 09:34) "С... Jan 28 2007, 16:32    Kopa Цитата(Olej @ Jan 28 2007, 16:32) Цитата(... Jan 29 2007, 07:02     Olej Цитата(Kopa @ Jan 29 2007, 08:02) "О... Jan 29 2007, 12:34      =AK= Цитата(Olej @ Jan 29 2007, 19:04) Ну-ка, ... Jan 29 2007, 13:08       Olej Цитата(=AK= @ Jan 29 2007, 14:08) В списк... Jan 29 2007, 15:13        =AK= Цитата(Olej @ Jan 29 2007, 21:43) Не сомн... Jan 29 2007, 15:58         Olej Цитата(=AK= @ Jan 29 2007, 16:58) деклари... Jan 29 2007, 17:39          =AK= Цитата(Olej @ Jan 30 2007, 00:09) Это не ... Jan 30 2007, 02:06           Olej Цитата(=AK= @ Jan 30 2007, 03:06) Кстати,... Jan 30 2007, 13:22            =AK= Цитата(Olej @ Jan 30 2007, 19:52) когда в... Jan 30 2007, 14:19            Kopa [quote name='Olej' date='Jan 30 2007, ... Jan 30 2007, 14:28      Kopa Цитата(Olej @ Jan 29 2007, 12:34) ...
И,... Jan 30 2007, 07:16    Kopa Форт системы пишутся на разных языках есть, наприм... Jan 29 2007, 10:24 beer_warrior ЦитатаПо моему мнению (прогнозу, предположению - I... Jan 27 2007, 23:22 ?ELF Цитата(beer_warrior @ Jan 28 2007, 01:22)... Jan 29 2007, 00:08 beer_warrior Цитата- что сие значит?
Значит это то, что большин... Jan 28 2007, 17:27 Olej Цитата(beer_warrior @ Jan 28 2007, 18:27)... Jan 28 2007, 23:19 =AK= Цитата(beer_warrior @ Jan 28 2007, 23:57)... Jan 29 2007, 07:45 beer_warrior Не буду затевать священную войну, и за ссылки и за... Jan 29 2007, 00:34 Kopa Цитата(=AK= @ Jan 29 2007, 12:31) Форт-ма... Feb 1 2007, 11:59
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|