www.PalmHelp.cz

Basic pro Palm OS
Publikováno: 19.01.2009
Téma: Software


Programování pro kapesní počítače je oblastí, která potenciálně zajímá poměrně slušné množství uživatelů, protože možnost vývoje aplikací šitých na míru svépomocí je velmi lákavá. Na druhou stranu je tento potenciál srážen nereálně vysokými nároky kladenými na "běžného" uživatele. Přesto možnost zvládnout programování pro PDA není tak úplně z říše snů. Existuje totiž hned několik implementací triviálního programovacího jazyka Basic...



(článek do soutěže o univerzální solární nabíječku)



BASIC? Nic jednoduššího nehledejte!

Programovací jazyk BASIC byl vyvinut v šedesátých letech minulého století jako prostředí pro výuku programování. Ve své době byl velmi populární QBasic, Turbo BASIC, stejně jako Turbo PASCAL. QBasic byl standardně dodáván se systémem MS-DOS verze 5+ a stáhnout si ho můžete zde: Download QBASIC 1.1 from Microsoft.

O tom, co je BASIC, nám dá stručnou, ale rychlou referenci česká wikipedie nebo rozšířenou informaci verze anglická. Že BASIC není fosilií, lze dokumentovat množstvím jeho klonů, včetně MS Visual Basicu. Poslední upgrade basicu na PalmHelpu byl v červenci 2008. Že se někdy jedná o starší verze, nás nemusí mrzet, protože cíle které dnes sledujeme, jsou v použitelnosti programů - proměnit své PDA v chytrou kalkulačku.

Na stránkách PalmHelpu jsme se mohli dočíst o několika variantách prostředí pro Palm OS. Můžeme si vybrat: Palm Basic, tinyBASIC, NS Basic, SmallBASIC, cbasPad [nyní Hotpaw Basic], programátorské prostředí LaFac. Každý klon obsahuje jakousi základní výbavu příkazů referenční BASIC a nějakou přidanou hodnotu (datové typy, procedury, spolupráce s grafikou, spolupráce s PC, cykly, knihovny funkcí aj.). Na domovských stránkách lze často nalézt i řadu tutoriálů. Komerční je iziBasic (o možnostech napoví stránka příkladů), stejně jako Hotpaw Basic s příklady a NS Basic s ukázkovými kódy. Vývojáři aplikací pravděpodobně sáhnou po Handheld Basic ++.

Palm Basic

Popis interpretu: Palm Basic se skládá z jednoho souboru prc (~ 79 kB). Označování vstupů a výstupů (input, print), proměnných, konstant, polí, funkcí, aritmetických výrazů, cyklů (if then (else), do loop while), je standardní, stejně jako implementace procedur (let, goto, gosub), deklarací, řetězcových a dalších funkcí.

Z pohledu uživatele Palm OS: Po instalaci a spuštění souboru basic.prc se nám otevře správce, který vypadá jako Memo Pad (systémová Palm OS aplikace pro poznámky). Umožňuje kategorizovat programy, spouštět, vytvářet a editovat programy, a pomocí menu se přepnout do konzole BASICu. Konzole umožňuje interaktivně spouštět jednořádkové programy nebo programy podle jména. Kolébkou nahoru nebo dolu vyvoláme poslední příkaz.

Příklad: Obvod kruhu spočítáme jako o = 2*pi*r. Celý program by mohl vypadat takto:

INPUT r
obvod=2*pi*r
PRINT obvod


Nebo jeho jednořádkovou variantou:

INPUT r : PRINT 2*pi*r

Závěr: Palm Basic je utilita, která je napsána pro Palm OS 3+. Umožňuje napsat a spouštět užitečné programy. Uživatel uvítá jednoduchý jazyk i prostředí. Detaily zájemce nalezne v manuálu. Palm Basic nevytváří spustitelný kód, to znamená, že všechny příkazy se musí spouštět pouze z prostředí Palm Basicu.

SmallBASIC

Program SmallBASIC může být velmi dobrou variantou k naprogramování si své vlastní aplikace pro Palm OS. Příjemně nás osloví jednoduchostí a praktickým zpracováním. Má mnoho společného s QBasic. Jedná se o dialekt, který je strukturovaný, obsahující mnoho rozšiřujících operací a funkcí včetně grafiky, nebo i např. matic (řešení soustav lineárních rovnic Gaussovou eliminační metodou). Vhodný je nejen pro začátečníky, hodí se na experimentování za dlouhých zimních večerů... Umožní nám rychle naprogramovat často se opakující výpočty (vzorečky naleznete např. v Přehledu užité matematiky, kompendiu, příručkách...). SmallBASIC je multiplatformní (MS Windows, Linux, Palm OS aj.) s otevřeným kódem. Domovská stránka basicu obsahuje i příklady použití včetně zdrojových kódů.

Po rozbalení souboru SmallBASIC-PalmOS5-0.8.2b.zip dostaneme adresář dokumentů a příkladů. V adresáři dokumentů je soubor ref.txt, který obsahuje všechna primitiva jazyka; tj. syntax a sémantiku vyhrazených slov - užitečné poznámky pro začátečníka. Další soubory v tomto adresáři se věnují omezení implementace. Adresář příkladů obsahuje užitečné aplikace, hry, příklady vstupů a výstupů, práci se zvuky a grafikou, dále podadresář testy, které lze využívat při ladění programů. Adresář příkladů lze využít jako studnici typických konstrukcí jazyka, jejich analýza pomůže začátečníkovi v orientaci v problematice jazyka SmallBASIC (včetně např. tinyBASIC). Vlastní program je sbpad.prc (~ 284 kB), spolu s knihovnou MathLib.prc (~ 51 kB) matematických funkcí.

Z pohledu uživatele Palm OS: Po spuštění SmallBASICu dostaneme praktického správce souborů (zdrojových programů *.bas), který umožňuje vytvářet, modifikovat a spouštět programy. Uživatel v menu jistě ocení položku Info, která obsahuje stručnou syntax a sémantiku vyhrazených slov jazyka BASIC. Programy je možné přehledně kategorizovat (filtrování souborů). Režim editace umožňuje program přejmenovat, otevřít jiný program apod. V levém dolním rohu je pole S&R, které znamená ulož a spusť aktuální program. Z menu ještě upozorníme na možnosti editace, změny písma, možnost hledání a odskoku, včetně "klávesových" zkratek. V režimu editace programů je možné i vytvářet sekce (spolupráce s poznámkovým blokem). Tato vlastnost se nejlépe uplatní při ladění programů a jejich přehlednosti.

Příklad: Program hledání kořenů křivek Newtonovou metodou regula falsi. Je dána funkce (řádek 510) a její první derivace (řádek 520). V bodě x (řádek 530) se sestrojí tečna, která protne osu x (řádek 580) a sestrojí se nová funkční hodnota (řádek 570) inicializačního bodu. To se opakuje (řádek 540) do té doby, dokud nejsme dostatečně blízko kořenu (řádek 560 a 600).

400 REM Metoda tecen
410 REM IQ 151/86/w
480 CLS
490 DATA -50
500 RESTORE
510 DEF FNY(X)=X*X-SIN(X)
520 DEF FNZ(X)=2*X-COS(X)
530 READ X
540 LET Y=FNY(X)
550 PRINT X,Y
560 IF ABS(Y)<1E-4 THEN GOTO 600
570 LET Z=FNZ(X)
580 LET X=X-Y/Z
590 GOTO 540
600 PRINT : PRINT "Priblizny koren je ";X
610 END


Závěr: Na rozdíl od Palm Basicu má SmallBASIC rozšířenější množinu příkazů. Zdrojový kód je téměř kompatibilní s Turbo BASICem. Výhodou je i jeho multiplatformost. Prostředí komunikuje prostřednictvím beam (infračervený port), umožňuje export a import programů prostřednictvím Memo Padu (poznámek) a PalmDOC. Znamená to, že lze snadno připravovat programy pro SmallBASIC přímo na PC (přenositelnost). Zvládá 16bitovou grafiku 320x320 pixelů a umožňuje tak působivý výstup v podobě grafů. Díky matematické knihovně je SmallBASIC více jak komplexní superkalkulátor. Projekt je stále otevřený, jak se můžeme přesvědčit na jeho domovské stránce. Interpret SmallBASICu podstatným způsobem rozšiřuje možnosti použití palmu.


Václav Vopravil

Poznámka redakce: článek byl mírně stylisticky upraven.







Tento článek si můžete přečíst na webu www.PalmHelp.cz
http://www.palmhelp.cz/html

Tento článek najdete na adrese:
http://www.palmhelp.cz/html/modules.php?name=News&file=article&sid=2035