Интерпретатор для PIC16

Mar 04, 2005 41 Replies

Hello, Anatoly! You wrote to Dima Oleshko on Sat, 05 Mar 2005 19:36:26 +0300:

AM> Есть такая штука - PICBASIC, но прошивку и софт BASIC STAMP я найти AM> не смог.

это был бы хороший вариант :) компилер васика вроде раздается с сайта параллакса, но вот прошивки пика найти пока не удалось, только готовые модули.

ну или

formatting link
только .hex, без исходников. но там исполняемая прога прошивается во внутреннюю EEPROM ну и какие то ограничения, я не разбирался пока.

With best regards, Dima Oleshko. E-mail: snipped-for-privacy@newyork.ru. ICQ: 171175197.

Mon Mar 07 2005 12:45, Dima Oleshko wrote to George Shepelev:

DO>>> а насчет соли... делается некое устройство работающее в нескольких DO>>> не связанных между собой режимах. каждая из задач спокойно влезет в DO>>> 8К пика, но вот все вместе уже нет. перешивать флеш при смене задач DO>>> неохота,

GS>> Если задачи меняются достаточно редко, можно поиграться с режимом GS>> "самопрограммирования" PIC'а. Твой почти наверняка этот режим умеет ;)

DO> я еще не знаю как часто они будут менятся, но через год менять проц с DO> убитой флешкой неохота :)

Hе маяться дурью и взять процессор с достаточным объемом памяти.

WBR, Yuriy

Hello, Yuriy! You wrote to Dima Oleshko on Mon, 07 Mar 2005 15:20:24 +0300:

DO>> я еще не знаю как часто они будут менятся, но через год менять проц DO>> с убитой флешкой неохота :)

YK> Hе маяться дурью и взять процессор с достаточным объемом памяти.

так и сделаю. сам уже понял :))

кстати кто то интересовался Java?

formatting link
With best regards, Dima Oleshko. E-mail: snipped-for-privacy@newyork.ru. ICQ: 171175197.

Kirill, ты ещё здесь сидишь?

Воскресенье Март 06 2005 11:16, Kirill Frolov wrote to Dima Orlov:

DO>> Главное - найти мазохистов, которые потом этот мрак DO>> программировать будут и после этого не начнут говорить "суп DO>> тарелка ложка взять налить съесть", прийдя в обеденный перерыв DO>> домой. KF> Hикогда не понимал, что мешает форт превратить в лисп.

А ничто не мешает. Синтаксис форта легко меняется (в литературе есть масса примеров), но сперва принято изучать работу форт-машины с "классическим" синтаксисом.

Георгий

Dima, ты ещё здесь сидишь?

Понедельник Март 07 2005 12:45, Dima Oleshko wrote to George Shepelev:

DO>>> а насчет соли... делается некое устройство работающее в DO>>> нескольких не связанных между собой режимах. каждая из задач DO>>> спокойно влезет в 8К пика, но вот все вместе уже нет. перешивать DO>>> флеш при смене задач неохота, GS>> Если задачи меняются достаточно редко, можно поиграться с GS>> режимом "самопрограммирования" PIC'а. Твой почти наверняка этот GS>> режим умеет ;) DO> я еще не знаю как часто они будут менятся, но через год менять проц с DO> убитой флешкой неохота :)

Hу вот и уточнил бы в начале условия работы девайса. Проблема может оказаться надуманой... Скажем, если ресурс 10000 перепрошивок вырабатывается за год, значит устройство постоянно перепрограммировалось чаще раза в час. Это для твоей задачи реально?

DO>>> поэтому возникла идея зашить некие общие функции (клавиатура, DO>>> индикатор, периферия) и собственно сам интерпретатор в флеш, а DO>>> сами задачи выполнять из внешней памяти. GS>> Что за задачи? Я не из праздного любопытства, просто нюансы GS>> могут очень существенно повлиять на выбор реализации... DO> терминал на несколько протоколов.

И подобный софт не влазит в 8 килослов? Я бы сосредоточился на оптимизации алгоритма и кода программы...

Георгий

Hello Kirill.

06 Mar 05 11:16, you wrote to Dima Orlov:

DO>> в обеденный перерыв домой. KF> Hикогда не понимал, что мешает форт превратить в лисп.

Чего только люди не придумают, лишь бы не делать парсер инфиксной записи ;)

KF> И порядок записи будет прямой,

Ага прямой. А общепринят порядок не прямой (префиксый). И не обратный (постфиксный). А математический (инфиксный)

;)

Alexey

Wed Mar 09 2005 13:46, Alexey Boyko wrote to Kirill Frolov:

KF>> Hикогда не понимал, что мешает форт превратить в лисп.

AB> Чего только люди не придумают, лишь бы не делать парсер инфиксной записи AB> ;)

Форт - один из немногих языков, для которых существует "компилятор компиляторов", наподобие LEX/YACC для С. Называется он Gray, разработан Антоном Эртлом, лицензия гнутая. Засовываешь ему БНФ - получаешь компилятор нужного тебе языка.

KF>> И порядок записи будет прямой,

AB> Ага прямой. А общепринят порядок не прямой (префиксый). И не обратный AB> (постфиксный). А математический (инфиксный)

В книге Баранова и Ноздрунова "Язык Форт и его реализации" приводится пример "надстройки" над фортом, которая позволяет ему "понимать" инфиксную нотацию. Занимает это примерно 20-30 строк на форте. Когда-то я делал свою "надстройку", которая превращала форт в компилятор упрощенного Паскаля, это занимало побольше, помнится, около 1к строк текста.

Пока, Алексей

Alexey, ты ещё здесь сидишь?

Среда Март 09 2005 13:46, Alexey Boyko wrote to Kirill Frolov:

KF>> Hикогда не понимал, что мешает форт превратить в лисп. AB> Чего только люди не придумают, лишь бы не делать парсер инфиксной AB> записи ;)

KF>> И порядок записи будет прямой, AB> Ага прямой. А общепринят порядок не прямой (префиксый). И не обратный AB> (постфиксный). А математический (инфиксный)

Баранов и Hоздрунов. "Язык Форт и его реализации". Раздел 3.2 "Инфиксная запись формул".

Погляди, там реализация "инфиксного" синтаксиса в одну страничку.

Лисп-подобную систему на Форте можно поглядеть в книге: Таунсенд и Фохт. "Проектирование и программная реализация экспертных систем на персональных ЭВМ".

Георгий

Hello Alex.

10 Mar 05 00:37, you wrote to Alexey Boyko:

AK> Форт - один из немногих языков, для которых существует "компилятор

============^^^^^^^^^^^^^^^^^^^^^^^

AK> компиляторов", наподобие LEX/YACC для С.

Ты лучше скажи, для каких языков compiler compiler'а нет. C++ (не C)? Есть. Pascal? Есть. Java? Есть. Perl? Есть. Python? Есть. Ruby? Есть. JavaScript? Даже тут есть! И для C# уже появился.

Hе скажу, правда, за Fortran...

// Lev

Thu Mar 10 2005 10:42, Lev Serebryakov wrote to Alex Kouznetsov:

AK>> компиляторов", наподобие LEX/YACC для С.

LS> Ты лучше скажи, для каких языков compiler compiler'а нет.

Помнится, сколько-то лет назад количество языков перевалило за тысячу. Ты действительно хочешь, чтобы я перечислил все, для которых нет?

LS> C++ (не C)? LS> Есть. Pascal? Есть. Java? Есть. Perl? Есть. Python? Есть. Ruby? Есть. LS> JavaScript? Даже тут есть! И для C# уже появился. LS> Hе скажу, правда, за Fortran...

Про жабаскрипт интересно. Кинь ссылочку.

Пока, Алексей

Hello Alex.

10 Mar 05 00:37, you wrote to me:

AB>> Чего только люди не придумают, лишь бы не делать парсер инфиксной AB>> записи ;) AK> Форт - один из немногих языков, для которых существует "компилятор AK> компиляторов", наподобие LEX/YACC для С. Hазывается он Gray, AK> разработан Антоном Эртлом, лицензия гнутая. Засовываешь ему БHФ - AK> получаешь компилятор нужного тебе языка.

Это хорошо. Hадо запомнить. Так как другого способа использовать форт, кроме как промежуточного языка я не вижу.

AK> В книге Баранова и Hоздрунова "Язык Форт и его реализации" приводится AK> пример "надстройки" над фортом, которая позволяет ему "понимать" AK> инфиксную нотацию. Занимает это примерно 20-30 строк на форте.

И что позволяла делать эта надстройка? Хотя бы такое позволяло?

x := pi * sin ( x )

AK> Когда-то я делал свою "надстройку", которая превращала форт в AK> компилятор упрощенного Паскаля, это занимало побольше, помнится, AK> около AK> 1к строк текста.

А был ли смысл? Может лучше на на чем-то другом написать компилятор упрощенного паскаля?

Alexey

Hello, Alex Kouznetsov !

Совершенно нет. Потому что интересуют лишь _практически_ актуальные языки, а для echotag - это собственно только C и отчасти C++.

С уважением, Дима Орлов.

  • Replying to a msg in Carbon.Area (Carbon Copies)

Hello Alex.

10 Mar 05 12:20, you wrote to me:

LS>> Ты лучше скажи, для каких языков compiler compiler'а нет. AK> Помнится, сколько-то лет назад количество языков перевалило за тысячу. AK> Ты действительно хочешь, чтобы я перечислил все, для которых нет?

Ага, учитывая ``Brainf*ck'', ``ook!'' и ассембелры всех сущестовавших процессоров? Сколько из них действительно используются более чем 5-тью разработчиками?

LS>> C++ (не C)? LS>> Есть. Pascal? Есть. Java? Есть. Perl? Есть. Python? Есть. Ruby? LS>> Есть. JavaScript? Даже тут есть! И для C# уже появился. Hе скажу, LS>> правда, за Fortran... AK> Про жабаскрипт интересно. Кинь ссылочку.

Года полтора назад встречал, уже не упомню... Могу гуглом поискать, но это любой может... Hо варть не буду -- тогда оно было изрядно сырым. Если не сдохло, то может уже юзабельно?

// Lev

DO>>> в обеденный перерыв домой. KF>> Hикогда не понимал, что мешает форт превратить в лисп. AB> Чего только люди не придумают, лишь бы не делать парсер инфиксной записи AB> ;)

Она нужна только в арифметических выражениях. Более нигде. Все остальные её формы, вроде трюков C++ с перегрузкой операторов, только снижают читаемость и плодят глюки.

KF>> И порядок записи будет прямой, AB> Ага прямой. А общепринят порядок не прямой (префиксый). И не обратный AB> (постфиксный). А математический (инфиксный) AB> ;)

("filename.txt", fopen, "rb+");

Hello Kirill.

11 Mar 05 00:55, you wrote to me:

AB>> Чего только люди не придумают, лишь бы не делать парсер инфиксной AB>> записи

KF> Она нужна только в арифметических выражениях. Более нигде. Все KF> остальные её формы, вроде трюков C++ с перегрузкой операторов, только KF> снижают читаемость и плодят глюки.

Э. Это смотря как сделаешь.

AB>> обратный (постфиксный). А математический (инфиксный) ;) KF> ("filename.txt", fopen, "rb+");

Hикогда не считал собственно вызов функции - выражением. Выражением оно будет тогда, когда результат функции будет использоваться как часть.

a = arctan(x, y) + 90;

Alexey

Thu Mar 10 2005 12:41, Alexey Boyko wrote to Alex Kouznetsov:

AK>> Форт - один из немногих языков, для которых существует "компилятор AK>> компиляторов", наподобие LEX/YACC для С. Hазывается он Gray, AK>> разработан Антоном Эртлом, лицензия гнутая. Засовываешь ему БHФ - AK>> получаешь компилятор нужного тебе языка.

AB> Это хорошо. Hадо запомнить. Так как другого способа использовать форт, AB> кроме как промежуточного языка я не вижу.

Ну почему же... Сам по себе форт тоже очень неплох. Просто надо относиться к нему без предвзятости.

AK>> В книге Баранова и Hоздрунова "Язык Форт и его реализации" приводится AK>> пример "надстройки" над фортом, которая позволяет ему "понимать" AK>> инфиксную нотацию. Занимает это примерно 20-30 строк на форте.

AB> И что позволяла делать эта надстройка? AB> Хотя бы такое позволяло?

AB> x := pi * sin ( x )

Угум-с.

AK>> Когда-то я делал свою "надстройку", которая превращала форт в AK>> компилятор упрощенного Паскаля, это занимало побольше, помнится, AK>> около AK>> 1к строк текста.

AB> А был ли смысл? Может лучше на на чем-то другом написать компилятор AB> упрощенного паскаля?

Были планы менять синтаксис по мере надобности, в т.ч. на лету. Форт был прикручен к другой программе в виде DLL, занимал всего 70 кило (что тоже плюс). Это развязывало прогу от компилятора. Форт исходники компилятора грузились на лету, без перезапуска проги или DLL, что соответствовало планам.

Пока, Алексей

DO> компилер васика вроде раздается с сайта параллакса,

а кому он нужен, когда компилер С[++] под большинство систем вполне реально достать или сломанный, или вообще GNUтый ?

смысл я так понимаю иметь интерпретатор какого-то байт-кода, который можно вытягивать с любого внешнего носителя, а совсем хорошо если появляется интерфейс a-la ROM BASIC в первых ПК/БК

AB>>> обратный (постфиксный). А математический (инфиксный) ;) KF>> ("filename.txt", fopen, "rb+"); AB> Hикогда не считал собственно вызов функции - выражением.

A что же это? Чем "2+2" отличается от open(...) ?

LS> Ты лучше скажи, для каких языков compiler compiler'а нет. C++ (не C)? LS> Есть.

Logo?

Hello Kirill.

12 Mar 05 04:31, you wrote to me:

AB>>>> обратный (постфиксный). А математический (инфиксный) ;) KF>>> ("filename.txt", fopen, "rb+"); AB>> Hикогда не считал собственно вызов функции - выражением. KF> A что же это? Чем "2+2" отличается от open(...) ?

Hутром чую - литра, а доказать - не могу. ;)

Alexey

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required