Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22587 Location: Silicon Valley
|
Идея - создание пополняемой базы подпрограмм на языке RW1. Т.к. данный язык будет основным в линейке NedoPC-продуктов, то на него хотелось бы много чего портировать или переписать. Написание чего-то одного большого одним человеком выглядит не слишком удачным решением, т.к. возможно многие возьмутся скажем за написание текстового редактора, но не многие допишут его до конца, а вот если разбить задачу на кучу мелких подзадачек и вывесить их в интернете - чтобы народ просто заходил сюда минут на 10-15 и прямо в онлайне что-то по быстрому бы писал на RW1 с мгновеной онлайновой проверкой (Java на клиентской и серверной сторонах). Для экономных можно организовать аналогичный e-mail сервис (почтовый робот у меня на домашнем линухе). По ходу дела можно вести учет кто чего написал и сколько очков набрал - и рисовать на сайте десятку лучших. Лучшим из лучших можно предлагать различные бонусы - типа бесплатную подписку на NedoPC-издание или бепслатное получение некоторых NedoPC-девайсов или еще что. Кстати так можно вести не только софтверную разработку, но и хардверную - любую запись на языке RW1 можно автоматически перевести в параллельную реализацию на VHDL.
Last edited by Shaos on 08 Feb 2005 21:47, edited 3 times in total.
|
04 Feb 2005 12:56 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22587 Location: Silicon Valley
|
Предполагаю несколько основных объектов такой онлайновой системы: - задача (формулировка действий которые должна делать подпрограмма) - решение (подпрограмма на RW1 для решения какой-то задачи) - тест (программа на RW1 для проверки решений) - проект (большая программа, составленные из подпрограмм-решений)
|
04 Feb 2005 14:53 |
|
|
dhau
Maniac
Joined: 12 Oct 2004 13:49 Posts: 233
|
Да, интересная идея. Но чур пусть будет несколько хорошо закомментированных примеров. Я люблю в разреза в карьер (или с корабля на бал?), не люблю читать всякие описания за 10+ страниц если мне за это не платят 65+ $ в час
|
16 Feb 2005 12:07 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22587 Location: Silicon Valley
|
Дороговато ты стоишь Ок, будут примеры - все равно большая часть кода предполагает быть открытой
|
16 Feb 2005 17:16 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22587 Location: Silicon Valley
|
Итак, модуль - это робот. Можно кстати его так и называть - robot. В общем случае у модуля есть автор, однако будучи реализован в исходниках модуль отдается в безвозмездное пользование всеми - и любой кто захочет отпочковать от модуля новый модуль имеет возможность вписаться в линейку его авторов.
Роботы работают с потоками данных - т.е. имеют входы и выходы, что позволяет считать их блоками некой большой схемы, которая также может быть модулем более высокоуровневой схемы. Таким образом мы получим возможность иерархической реализации сложных концепций из простых кирпичиков и подкирпичиков. Причем авторы отдельных кирпичиков в общем случе могут и не догадываться где и для чего будут использованы их модули. Также реализация будет подразумевать и VHDL вариант для выпуска систем "в железе".
По поводу лицензирования - строящиеся таким образом системы предполагается распространять под лицензией GPL и с копирайтом главного веб-сайта проекта (по-видимому это будет rwar.net).
|
30 Jul 2005 18:36 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22587 Location: Silicon Valley
|
Я придумал как составлять из RW-модулей обработчики потоков данных - на основе этого подхода можно строить симуляторы электронных схем и готовить VHDL-описание программируемой логики!
|
02 Aug 2005 06:25 |
|
|
SfS
Doomed
Joined: 16 Apr 2005 22:35 Posts: 492 Location: Томск
|
Это было бы наверное очень интересно. Если бы еще была возможность в устройстве "на лету" VHDL компилировать и ПЛИСу прошивать....
|
02 Aug 2005 19:13 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22587 Location: Silicon Valley
|
А вот этого не выйдет (хотя очень хочется) так как вся современная программируемая логика имеет закрытую архитектуру, программируемую только из специальных программ производителей соответствующих микрух (обсуждение вопроса читать тут) - остается уповать только на старые добрые палы-галы - найти бы такие, которые по ISP могут программироваться без ПЦ
|
02 Aug 2005 20:00 |
|
|
SfS
Doomed
Joined: 16 Apr 2005 22:35 Posts: 492 Location: Томск
|
Тогда это вопрос времени. Может появится и открытая
|
02 Aug 2005 20:57 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22587 Location: Silicon Valley
|
Выглядеть это будет примерно так:
Как нетрудно догадаться, вышеприведенный модуль выполняет функцию сложения. Вектор связи стостоит из 3 полей - два слагаемых (входы) и результат (выход). Так как передача идет пакетами, то по 0-му индексу резервируется место под размер пакета (т.е. в вышеприведенном примере vec[0] всегда будет равно 3). Для создания дочерних объектов-модулей предлагается некий трюк со спецкомандами, передаваемыми через SAY. Что-то типа такого:
|
12 Sep 2005 19:53 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22587 Location: Silicon Valley
|
Для компактности все вышесказанное можно обернуть в псевдо-объектно-ориентированную обертку посредством макросов RW1 (чтобы это заработало надо компилятор RW1C немного подправить):
// во-первых, зададим два основных ОО-макроса:
@NEW(3)=def @1[@2];say "$new @3";i_@1=N;@1[0]=@2-1
@RUN(1)=sendp @1 i_@1;recvp @1
// затем мы можем определить макросы "классов":
// класс Sum (сумма) A+B=S
@SUM(1)=@NEW(@1,4,Sum)
@SUM_A(1)=@1[1]
@SUM_B(1)=@1[2]
@SUM_S(1)=@1[3]
// класс Inc (инкремент) A++
@INC(1)=@NEW(@1,2,Inc)
@INC_A(1)=@1[1]
// тогда работа с модулями-классами будет выглядеть так:
@SUM(s1) // объект s1 класса Sum
@SUM(s2) // объект s2 класса Sum
@INC(ii) // объект ii класса Inc
...
@SUM_A(s1)=1
@SUM_B(s1)=2
@RUN(s1)
@SUM_A(s2)=3
@SUM_B(s2)=@SUM_S(s1)
@RUN(s2)
@INC_A(ii)=@SUM_S(s2)
@RUN(ii)
result=@INC_A(ii) // в результате должно получиться 7
|
13 Sep 2005 20:15 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22587 Location: Silicon Valley
|
Вчера я после тщательного обдумывания изобрел объектно-ориентированное расширение RW1, отдаленно напоминающее Java - компилируемый код RW1 будет получатся из объектно-ориентированной программы с помощью специального транслятора
|
14 Sep 2005 17:22 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22587 Location: Silicon Valley
|
Я даже название для всего этого (язык плюс онлайновый сервис ведения проектов на нем) придумал - ROBERTA (Reasonable Object Base for Embedded Real Time Applications). На самом деле название я придумал давно, а вот расшифровку аббревиатуры - только что
|
14 Sep 2005 20:19 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22587 Location: Silicon Valley
|
Кстати последний RW1C компилятор уже может такие фокусы с макросами делать!
А ROBERTA теперь расшифровывается как Real Object Basis for Embedded Real-Time Applications
|
03 Dec 2005 17:28 |
|
|