progi - Java

Rancz Lajos csiga at sch.bme.hu
Thu Apr 1 18:39:37 CEST 2004


Haliho!

> Rancz Lajos wrote:
> > Na, el a kezekkel a Javatol! :-) A Javaban pont az interpretalt futas az
>
> Ha annyira tetszik, hasznald, en biztos nem fogom.
> Egyebkent nem interpretalt, legalabbis a szo szokasos ertelmeben nem.
> Forditott es interpretalt egyszerre, mivel a forrasbol leforditanak egy
> binaris kodot (bytecode), ami semmilyen processzoron nem futtathato, hanem
> egy szoftveresen emulalt processzoron fut.
> Ilyen bytecode-ot C++ forrasbol is lehetne forditani. (illetve lehetett
> volna, mert biztos van olyan nyelvi elem a java-ban ami c++-ban nincs.)

Igen lehetne C++ ban is csinalni ilyet, csak a C++ nem egyseges. Pl.
minden gyarto mas-mas kulcsszavakat hasznal, masmilyen a kivetelkezelese.
A nagyobb gond, hogy nincs mogotte egyseges kidolgozott platform, tehat a
C++ esetere is mindent ujra meg kene csinalni. Amugy pedig nem lehet a
Java fejlesztesevel versenyezni, perpillanat olyan sokan fejlesztenek
ala, hogy ha egesz nap csak dokumentaciot olvasol, akkor sem tudnal
lepest tartani a fejlodesevel. Mire kigondoltad, hogy mi lenne jo, mar
meg is csinaltak :-), ez azert enm rossz. A Java nem egy nyelv, hanem egy
platform amelynek rengeteg szolgaltatasa van.

> Ezzel a bytecode koncepcioval messzemenoen egyetertek, de csak akkor ha
> tenyleg szukseg van a portabilitasra. Amivel nem ertek egyet, hogy minek
> kellett egy uj nyelvet alkotni hozza ha mar volt meglevo, es minek kellett a
> "minden class" szemlelet.

A byte kod nem _csak_ a portabilitas miatt kell a nyelvbe, hanem a
biztonsag miatt, hogy a futtato pontosan tudja, hogy egy adott program mit
es mit nem tehet meg.

A "minden class szemlelet" az ujrafelhasznalhatosag miatt szukseges,
emellett noveli az irt program atlathatosagat.

> > egyik nagy elony, mig a masik a C++-bol "kiolt" goto es pointer kezeles.
>
> Nincs benne pointer? Egyel tobb szalka a szememben.

Miert? Mit csinalsz vele, amiert olyan nagy szukseg van ra? A pointeres
parameteratadast megkerultek (hasonloan a Pascalhoz). Tomb kezelesre meg
ott az index. A fuggvenyekre mutatot pointereket pedig referenciakkal
helyettesitik. Az elonyok megmaradtak, de a hatranyok csokkentek, kevesebb
az atlathatatlan kod. Konnyebb a debug es a megertes.

> Annyira szurja a szemed a goto a c-ben? A label nem? :-)
> Ket utasitas amit normalis C/C++ programozo _nem_ hasznal.

De! A gotonak igenis van jelentosege. Pl. ciklusba agyazott ciklusbol
nehez break-kel kijonni, mindenkeppen plusz valtozot kell bevezessel, mig
goto-val siman kiugrasz. Bar sok esetben egyzserusitene a feladatot, a
goto kivetelet is a biztonsag miatt csinaltak (lehetoleg mindent
egyfelekeppen lehessen csinalni). Ezt felismerve a C# visszahozta a
goto-t, de csak ciklusbol es switchbol valo kiugrasra lehet hasznalni.

(Plusz C#-ban az unsafe kulcsszo hasznaltaval hasznalhatsz pointerket is
az adott blokkon belul).

Udv,
	Lajos
//
Rancz Lajos



More information about the Elektro mailing list