реклама на сайте
подробности

 
 
> Скриптовые языки, что почитать?
beer_warrior
сообщение Jan 26 2007, 23:53
Сообщение #1


Профессионал
*****

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



Сама по себе тема поднималась на форуме неоднократно, и сам я немало нафлудил в этих топиках.
Речь идет о портировании известных скриптовых языков на МК.
Есть немало открытых исходников и готовых портов.
Но в данном случае речь идет о теории. Где можно взять инфу по внутреннему устройству интерпретаторов?
Задача - научиться самому портировать язык, причем возможно с урезанием функциональности (т.е копанием во внутренностях), на любой кристалл и/или RTOS.
Копание вслепую не слишком результативно sad.gif


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
=AK=
сообщение Jan 29 2007, 12:31
Сообщение #2


pontificator
******

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



Интерпретатор не так уж сильно зависит от языка программирования. Интерпретатор всего лишь дает некую виртуальную машину. В принципе можно пытаться делать "оптимальный" интерпретатор для каждого языка, но вообще-то это маразм и давно пройденный этап.

Доказательством, что интерпретатор не зависит от языка, являются "обычные" процессоры - ведь под тот же Пентиум есть компиляторы практически с любого языка. Поэтому под полную по Тьюрингу виртуальную машину (т.е. под интерпретатор) в принципе можно написать компилятор с любого языка. Правда, под некоторые виртуальные процы компиляторы будут очень замысловатыми, чему примером небезизвестный проц Брэйнфак.

Главное достоинство интерпретатора состоит в том, что он дает виртуальную машину, (почти ) не зависящую от железа.

Одними из первых до этого допедрили создатели Жабы. Однако с виртуальной машиной Жабы есть некоторые проблемы: полная машина довольно тяжеловесна (типично требует порядка 1М памяти и 32-бит проц). Прежде всего из-за выбранного ООП-подхода и встроенной сборки мусора. Если бы не это, виртуальная машина Жабы еще больше напоминала бы виртуальную машину Форта, т.к. обе суть стековые процессоры, но Форт-машина максимально простая, а Жаба-машина - с наворотами. Есть всевозможные варианты "урезанных Жаб", где прежде всего выбрасывают сборку мусора, но я в них не очень силен. В любом случае это будет кастрированный язык.

Второе достоинство интерпретатора состоит в том, что для хорошей виртуальной машины можно написать транслятор с любого языка. Сановцы до этого не доперли, для своей виртуальной Жаба-машины он предлагают один только язык Жаба. Этим обстоятельством воспользовались мелкомягкие и выкатили свой .NET.

В основе .NET лежит примерно такая же виртуальная машина (интерпретатор), какая используется в Жаба-машине, т.е. стековый проц с ООП наворотами и сборкой мусора. Однако языков под эту машину наплодили тучу. В отличие от Жабы, мелкомягкие, похоже, не имеют намерений "урезать" .NET. Правда, есть умельцы, которые занялись этим самостоятельно (кому интересно - гуглите на слова .NET lego mindstorm).

Форт-машина - одна из самых простых и удобных виртуальных машин. Это тоже стековая машина, как Жаба-машина и .NET-машина, но максимально компактная и упрощенная. Идеально подходит для встроенных применений, но - увы - в отличие от .NET и Жаба-машин, не поддержана доступными высококачественными кросс-трансляторами с удобных ЯВУ. Есть полуоткрытый югославский проект, где они делают Форт-машину с С-кросс-компилятором, но это маргинальные штучки.

Все, что помимо этих трех машин (Жаба, НЕТ, Форт) упоминалось в треде - это все отстой и суксь, имхо. Уродцы, обреченные на вымирание, нечаянно появившиеся в ходе эволюционного процесса, имхо. Там есть достойные изумления экземпляры, такие как проект регистровой виртуальной машины, "Попугай" для Перла, если память не изменяет.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 01:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01962 секунд с 7
ELECTRONIX ©2004-2016