Javu v Cobolu, nebo snad radši v C++?

Každý už jistě slyšel o jazyce Java. Ne každému se musí líbit a ne každý se ho chce učit. No ano, Java je moderní...


Každý už jistě slyšel o jazyce Java. Ne každému se musí líbit a ne každý se ho
chce učit. No ano, Java je moderní programovací jazyk, ale co s námi, kteří
celý život programujeme v Cobolu nebo C++? I my můžeme psát webovské applety a
přitom nemusíme o Javě vědět vůbec nic. Javu totiž můžeme psát třeba ve Visual
Basicu. Anebo se vám spíše líbí Pascal?
Ale na začátek alespoň pár slov o tom, jak Java funguje, a pak ji hned začneme
programovat v něčem jiném, slibuji. Java je objektově orientovaný
interpretovaný programovací jazyk vyvinutý firmou Sun. Tento jazyk ovšem není
interpretován přímo ze souboru se zdrojovým kódem, ale z již přeložených
souborů obsahujících tzv. bytekód. Jedná se vlastně o pokyny podobné
procesorovým instrukcím, které jsou ale určeny pro tzv. Java Virtual Machine
(JVM). Což je program simulující virtuální počítač, který implementuje javovský
bytekód. A ten umožňuje onu kýženou platformní nezávislost Javy, kdy pro daný
existující hardware musíme napsat jen tuto JVM a všechny ostatní javovské
programy pak běží beze změny. Za to ale často platíme zpomalením běhu celého
programu. Kvalita a rychlost JVM se proto rozhodující měrou podílí na výsledku
celé práce. Java ovšem není jen JVM, ale i vývojové prostředí Java Software
Development Kits, nyní ve verzi 1.2.2. Nalezneme v něm zejména překladač Javy
do bytekódu, JVM, ale i dokumentaci a řadu příkladů. Celý balík a mnoho dalšího
softwaru pro vývojáře naleznete na http://java.sun.com. Samozřejmě i řada
další, firem nabízí další mnohem sofistikovanější vývojové nástroje pro jazyk
Java (IBM, Microdoft, Symantec atd.). To ale asi jen pro ty, co se Javu opravdu
chtějí naučit, my ostatní se pokusíme o malý podvod a tu Javu si raději
napíšeme v nějakém jazyce, který trochu lépe ovládáme.
Překladače na druhou
Cíleného bytekódu můžeme dosáhnout několika způsoby. Nejjednodušší řešení je
přeložení zdrojového kódu do syntaxe jazyka Java a poté překlad do bytekódu
standardním překladačem. Výhodou je jednoduchá tvorba překladače, nevýhodou
prodloužení vlastního generování bytekódu, kdy dochází vlastně ke dvojnásobnému
překladu. Asi největší praktické využití mohou mít překladače z Visual Basicu,
které umožňují tvorbu appletů z již existujících zdrojových kódů. Pouhým
spuštěním externího programu můžeme z ActiveX komponent vytvořit javovské
applety. Jako příklad takového konvertoru může posloužit Applet Designer 2.0
(http://www.tvobjects.com/ products/AD20.html).
Téměř neuvěřitelná se zdá možnost konvertování souborů určených pro Borland
Delphi do jazyka Java. Produkt Delphi2Java (http://www.javadelphi. com) slibuje
podporu všech verzí Delphi (včetně poslední verze 5), podporu tisku, základních
komponent a většiny funkcí v Run-Time Library. Dokonce umožňuje pomocí
externího programu, který zajišťuje spojení do databáze, konverzi databázových
aplikací. Zejména v našich zeměpisných šířkách, kde je Pascal velmi oblíben, je
pro tento program jistě úrodná půda.
Dalším, ale malinko jiným konvertorem je rc2J (http://www.
xlator.com/features1.html). Tento program umožňuje převod Windows resource
souborů (*.rc obsahují popis uživatelského rozhraní aplikace ) používaných
například v Microsoft Visual C++. Samozřejmě výsledný javovský kód není
funkční, převede se pouze uživatelské rozhraní.
Přímo bytekód
Zřejmě správnější cestou je generování bytekódu přímo překladem z
programovacího jazyka, tedy stejně jako je tomu v Javě. Zástupcem této
strategie je PERCobol-Compiler nebo překladač jazyka Ada 95 AppletMagic 2.0
(http://www.appletmagic.com). Trochu jinou kategorii tvoří překladače Java
assembleru. Nejedná se o stejný assembler, jako je pro PC, ale o speciální
jazyk pro zápis instrukcí JVM (Jas http://www.sbktech.org/jas.html).
Interpreter tentokrát opět na druhou
Poslední možností je využití vlastního interpreteru, který běží v JVM. Toto
řešení se asi nejsnáze realizuje; tvorba interpreteru je přece jen jednodušší
než tvorba překladače. Velice zajímavé jsou například interpretery JavaScriptu
(Rhino http://www.mozilla.org/rhino a Fesi
http://home.worldcom.ch/jmlugrin/fesi). Existují samozřejmě interpretery
dalších skriptovacích jazyků, široké uplatnění nalezne určitě i program Jacl
(http://www.scriptics.com/products/java), který umožňuje integraci kódů
napsaných v Tcl a Javě.
Možnosti a využití
Téměř vyčerpávající výčet jazyků (i těch, na které se nedostalo) naleznete na
adrese http://grunge.cs.tu-berlin.de/~ tolk/vmlanguages.html, kde je jistě i
řešení pro váš oblíbený jazyk.
Na jeden jazyk jsem ale zapomněl úmyslně, na C++. I pro něj sice existuje
několik nástrojů, ale neslibují větší úspěšnost překladu než 85 %-95 %. Tato
čísla se samozřejmě netýkají jen C++, i ostatní programy nejsou často dokonalé
a ne všechny konstrukce povolené v daném programovacím jazyce dokáží bez
problémů přeložit.
Ale i tak nám mohou takové nástroje ušetřit spoustu práce.
Největšího uplatnění asi dosáhnou překladače do Javy, které by nám mohly pomoci
využít alespoň některé části kódu a zachovat již jednou definované uživatelské
rozhraní. Přeložený kód pak ovšem budeme muset upravit a často i velkou část
přeprogramovat. Další možnost (překlad přímo do bytekódu) dosáhne asi
největšího uplatnění při tvorbě appletů, které pak mohou sloužit pro jednoduchý
přístup z Internetu k našim již existujícím aplikacím. Poslední možnost
(použití interpreteru jazyka, který běží v JVM) nalezne největší uplatnění při
tvorbě makrojazyků. Jejich výhoda je zřejmá, od možnosti konfigurování systému
podle přání uživatele až po dynamické pouštění uživatelem napsaných skriptů.
A co říci na závěr? Až dosud jsme hledali všechny cesty, jak se vlastní Javě co
nejvíce vyhnout, ale to určitě není nejlepší řešení. Java je moderní jazyk,
který se hodí nejen pro tvorbu jednoduchých appletů, ale lze v něm psát složité
databázové nebo grafické aplikace a nalezne uplatnění i na webových serverech.
Java je velmi podobná C++, ale ani programátoři v jiných objektových jazycích
nebudou mít velké problémy při učení tohoto jazyka. Takže s chutí do toho.
9 3096 / als









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.