-
1. Data: 2010-04-17 20:12:44
Temat: Embedded language - jaki ?
Od: Sebastian Biały <h...@p...onet.pl>
Witam.
Sprawa jest nie do końca związana z konkretnym językiem, więc pozwalam
sobie tutaj zasięgnąc rady.
Mam CPU z 64kB RAM i 128kB ROM w którym około 80kB jest w tej chwili
wolne. Jest to ARM.
Ze względu na specyfikę zastosowania chciałbym umieścić wewnatrz jakiś
wygodny język programowania embedded ktory w szczególności:
a) nie wymaga kompilacji w sposob jawny - dostarczam do CPU kod źrodlowy.
b) blizej mu do językow skryptowych niż silnie typowanych
c) ma skladnię zbliżoną do C/C++/Java/Javascript - "klamrowy" lub
podobny w sensie wyglądu kodu
d) jesli BASIC to jakiś normalny (przykaład nienormalnego - TigerBasic).
e) Możliwie nie zaczyna się na "Fort..." ;)
f) nie uzywa malloc/free (nie ma tam MMU), _idealnie_ jesli posiada
kompaktujący GC.
g) jesli to ja dostarczam abstrakcję pamięci, to można sie pokusić o coś
w rodzaju swapa tylko dla niego (w systemie istnieje dysk hdd).
h) prędkośc bez znaczenia (w granicach rozsądku).
Niestety z punktu widzenia mojego punkt f) jest dośc istotny,
fragmentacja pamieci jest katastrofą dla mojego CPU, a wsadzenie czegoś
z MMU oznacza zasadniczy skok kosztów.
Teraz pytanie, czy ktoś ma pomysł co wklepać w google? Najbardziej
chciałbym JavaScript, ale wszystkie jego engine które oglądałem
zakładają że istnieje malloc/free/new/delete i używają tego bardzo
rozrzutnie (nie jest też możliwe zrobienie kompaktującego GC).
PS. Pytalem kiedyś o coś podobnego, ale teraz mam _wypasioną_ pamięć
64kB więc zmieniają się warunki ;)
-
2. Data: 2010-04-17 20:59:46
Temat: Re: Embedded language - jaki ?
Od: Sławomir Szczyrba <c...@o...the.night>
Welcome to the desert of the real, Sebastian Biały...
> Witam.
>
> Sprawa jest nie do końca związana z konkretnym językiem, więc pozwalam
> sobie tutaj zasięgnąc rady.
>
> Mam CPU z 64kB RAM i 128kB ROM w którym około 80kB jest w tej chwili
> wolne. Jest to ARM.
> Ze względu na specyfikę zastosowania chciałbym umieścić wewnatrz jakiś
> wygodny język programowania embedded ktory w szczególności:
>
Whoa, dejavu...
Jakiś czas temu prowadziłem podobne poszukiwania.
W rezultacie na placu boju pozostały z dwie maszyny wirtualne (NVM i nanoVM),
basic jeszcze z czasów 8052 (jesli ktoś ma dość zapału na konwersję, to niech
da znać jak mu poszło ;) oraz uBasic < http://www.sics.se/~adam/ubasic/ >
Mozesz też rzucić okiem na pakiety : nesla, ee, probasic czy picoc.
Sławek
--
________
_/ __/ __/ Ooooo, jesst mały problem. -- Sid
\__ \__ \___________________________________________________
____________
/___/___/ Sławomir Szczyrba steev/AT/hot\dot\pl
-
3. Data: 2010-04-17 21:31:18
Temat: Re: Embedded language - jaki ?
Od: Jacek Czerwinski <...@...z.pl>
Sławomir Szczyrba pisze:
> Welcome to the desert of the real, Sebastian Biały...
>> Witam.
>>
>> Sprawa jest nie do końca związana z konkretnym językiem, więc pozwalam
>> sobie tutaj zasięgnąc rady.
>>
>> Mam CPU z 64kB RAM i 128kB ROM w którym około 80kB jest w tej chwili
>> wolne. Jest to ARM.
>> Ze względu na specyfikę zastosowania chciałbym umieścić wewnatrz jakiś
>> wygodny język programowania embedded ktory w szczególności:
>>
> Whoa, dejavu...
> Jakiś czas temu prowadziłem podobne poszukiwania.
> W rezultacie na placu boju pozostały z dwie maszyny wirtualne (NVM i nanoVM),
> basic jeszcze z czasów 8052
Z kolei moja myśl idąc przez interpretery na tak slaby sprzet,
zauwazyla, że jedyny sposób na ograniczone potzreby RAM ze wzgledu na
kompilacje i ładowanie, to jezyk niestrukturalny (w praktyce Basic z
numerami linii lub Forth - jednostką kompilacji jest pojedyncza linia
lub podobny byt). Posiadanie bloków, instrukcji strukturalnych (klamerek
z C) wymusza pojawienie się drzewa programu (AST) o rozmiarze
odwzorowującym potencjalnie cały program.
Maszyna wirtualna to co innego jeśli chodzi o spojrzenie przez RAM.
Co nie zmienia faktu że historycznie na 64kB RAM bywały już kompilatory
(zwykle jednak z nakładkami lub etapami), może jakies szkolne w jednym
"kawałku"
-
4. Data: 2010-04-17 21:36:23
Temat: Re: Embedded language - jaki ?
Od: Sebastian Biały <h...@p...onet.pl>
Sławomir Szczyrba wrote:
> W rezultacie na placu boju pozostały z dwie maszyny wirtualne (NVM i nanoVM),
maszyne wirtualną Javy z kompaktacją pamięci sobie wlasnie skrobie na
boku, ale chodzi mi raczej o trywialny język typu procedura, pętla,
zmienna ktory jest wygodny w zapisie dla tumanisty który to będzie misla
czasem z lekka poprawić.
> Mozesz też rzucić okiem na pakiety : nesla, ee, probasic czy picoc.
Dzieki. Acz basica staram się uzyć w ostateczności.
-
5. Data: 2010-04-17 21:46:14
Temat: Re: Embedded language - jaki ?
Od: Sebastian Biały <h...@p...onet.pl>
Jacek Czerwinski wrote:
> Z kolei moja myśl idąc przez interpretery na tak slaby sprzet,
50MHz i słaby sprzęt :P
> zauwazyla, że jedyny sposób na ograniczone potzreby RAM ze wzgledu na
> kompilacje i ładowanie, to jezyk niestrukturalny (w praktyce Basic z
> numerami linii lub Forth - jednostką kompilacji jest pojedyncza linia
> lub podobny byt).
Słabo znam się na interpretatortach, ale zanim zaczne zastanawiać się
nad JVM/Dalvik i pośrednią kompilacją (co jest wyjsciem chyba dość
rozsądnym na tyle RAMu) wole wybadac, bo może akurat nie muszę męczyć
się z Javą jeśli jest jakiś gotowieć w rodzaju ładnego embedded BASICa
na "już".
> Co nie zmienia faktu że historycznie na 64kB RAM bywały już kompilatory
> (zwykle jednak z nakładkami lub etapami), może jakies szkolne w jednym
> "kawałku"
Nie spodziewam się że ktoś zrobi szybki, wydajny i mały interpretter
JavaScriptu mieszczący się w 64kB RAM. Choć na nim zależało by mi
najbardziej, nawet wycinając funkcjonalność :)
-
6. Data: 2010-04-19 06:21:59
Temat: Re: Embedded language - jaki ?
Od: Jacek Czerwinski <...@...z.pl>
Sebastian Biały pisze:
> Jacek Czerwinski wrote:
>> Z kolei moja myśl idąc przez interpretery na tak slaby sprzet,
>
> Nie spodziewam się że ktoś zrobi szybki, wydajny i mały interpretter
> JavaScriptu mieszczący się w 64kB RAM. Choć na nim zależało by mi
> najbardziej, nawet wycinając funkcjonalność :)
Z języków 'z klamerkami' o jakim-takim przyjęciu na rynku, czy
zainteresowałeś się http://www.lua.org/ ręcznie wykonany (podawany w
rankingach jako szybki), o nieprzesadnym zuzyciu RAM (co nie znaczy, że
obiecuję zmieszczenie się w Twoich kryteriach), bardzo dużo
funkcjonalności wyniesione do opcjonalnych modułów. Nawet 'podstawowy
typ liczbowy' da się podmieniać.
Wbudowywałem kiedyś do aplikacji C++, więc jest znacznie mniejszy od
SpiderMonkey-a.
-
7. Data: 2010-04-19 06:44:32
Temat: Re: Embedded language - jaki ?
Od: Sebastian Biały <h...@p...onet.pl>
Jacek Czerwinski wrote:
> Z języków 'z klamerkami' o jakim-takim przyjęciu na rynku, czy
> zainteresowałeś się http://www.lua.org/
Używałem go już kilka razy w róznych okoliocznościach i nie przekonuje
mnie składnią, choć jest lepiej niz w BASICu oczywiście. Niestety będą
kłopoty z pamięcią, o ile pamiętam engine lua robi malloc/free podczas
pracy co w moim wypadku oznacza szatkowanie skromnej pamięci.
-
8. Data: 2010-04-19 07:11:31
Temat: Re: Embedded language - jaki ?
Od: Jacek Czerwinski <...@...z.pl>
Sebastian Biały pisze:
> Jacek Czerwinski wrote:
>> Z języków 'z klamerkami' o jakim-takim przyjęciu na rynku, czy
>> zainteresowałeś się http://www.lua.org/
>
> Używałem go już kilka razy w róznych okoliocznościach i nie przekonuje
> mnie składnią, choć jest lepiej niz w BASICu oczywiście. Niestety będą
> kłopoty z pamięcią, o ile pamiętam engine lua robi malloc/free podczas
> pracy co w moim wypadku oznacza szatkowanie skromnej pamięci.
a) przez wrapper(pojedynczy interfejs) więc jest na to jakiś wpływ
(sub-alokator, te wzorce).
b) wg mojej intuicji (nie mam twardych dowodów) chyba nie da się
intepretera zrobić do języka strukturalnego (tzw nie basic tylko z
numerami linii typu ZxSpectrum, Commodore lub z innej strony Forth) bez
alokowania (być może podmienionym alokatorem). Nos mówi mi, że to
związane. Jednak np radykalnie stosowa koncepcja Forth'a ułatwia
nieszatkowanie pamięci. Nigdy nie przeprowadziłem z kims dyskusji, czy
taki wymyślony związek to tylko moja chora wyobraźnia, czy realia tzw
'życia'.
-
9. Data: 2010-04-19 08:18:38
Temat: Re: Embedded language - jaki ?
Od: Grzegorz Krukowski <r...@o...pl>
On Sat, 17 Apr 2010 23:36:23 +0200, Sebastian Biały
<h...@p...onet.pl> wrote:
>Sławomir Szczyrba wrote:
>> W rezultacie na placu boju pozostały z dwie maszyny wirtualne (NVM i nanoVM),
>
>maszyne wirtualną Javy z kompaktacją pamięci sobie wlasnie skrobie na
>boku, ale chodzi mi raczej o trywialny język typu procedura, pętla,
>zmienna ktory jest wygodny w zapisie dla tumanisty który to będzie misla
>czasem z lekka poprawić.
>
>> Mozesz też rzucić okiem na pakiety : nesla, ee, probasic czy picoc.
>
>Dzieki. Acz basica staram się uzyć w ostateczności.
Ależ Basic był w tym celu stworzony. To że Tobie to nie pasuje to
jedno ;) wczuj się w użytkownika, Basicowate są proste jak tylko mogą
być. Na dodatek dla Basica masz bardzo dużą bazę tutoriali i na
podstawowym poziomie są bardzo przenośne.
--
Grzegorz Krukowski
-
10. Data: 2010-04-19 13:38:29
Temat: Re: Embedded language - jaki ?
Od: Sebastian Biały <h...@p...onet.pl>
Grzegorz Krukowski wrote:
>>Dzieki. Acz basica staram się uzyć w ostateczności.
> Ależ Basic był w tym celu stworzony. To że Tobie to nie pasuje to
> jedno ;) wczuj się w użytkownika, Basicowate są proste jak tylko mogą
> być.
Nie. BASIC w implementacjach embedded zazwyczaj nie ma procedur ( a
tylko głupie bezparametrowe gosub), pojecia zmiennych lokalnych, trzeba
pamiętać o różnicach miedzy zmiennymi nie string a string (to śmieszne
$), brzydką składnię z numeracją linii itd. Program w javaScripcie
wyglada znacznie bardziej przejrzyście niż w BASICu. Przetestowalem to
na humanistach, tumanistach i innych nie inżynierach i wnioski są
właśnie takie. Łatwiej tumaniscie poprawić coś w JavaScricie niż w BASICu.
> Na dodatek dla Basica masz bardzo dużą bazę tutoriali i na
> podstawowym poziomie są bardzo przenośne.
E tam, BASIC ma chyba najwięcej niezgodnych z sobą implementacji. Nie
wiem czy przebija to jakikolwiek inny język na świecie, na pewno na
kilkanascie jakie miałem w ręku różnice były kolosalne. Po ostanich
przejściach z TigerBasic-em wolałbym oszczędzić userowi całego stada
problemów jakie napotkałem. Dlaetgo basic tak, ale to ostatczenośc,
prędzej napiszę to JVM ...


do góry
Dlaczego nowe mieszkania są coraz mniejsze? Dane GUS pokazują prawdziwy powód