Ez milyen előnyökkel járna?
Összehoztam egy aprócska, BASIC-szerű, minimalista programozási nyelvet, amiben nagyon kevés a kulcsszó, ráadásul, még ciklusok sincsenek támogatva. Azokat úgy kell összerakni, mint assemblyben. Ehhez mondjuk van a nyelvben cimke támogatás.
A cimkékkel lehet a nyelvben szubrutinokat is létrehozni, úgy, hogy ha a cimke utáni sorokban RETURN van, akkor a vezérlés visszakerül a hívás előtti pontra. Ha meg nincs RETURN, akkor megy a végrehajtás tovább.
A RETURN alapban egy önálló utasítás, ami egymagában fordul elő.
Arra gondoltam, hogy ezt a RETURN utasítást úgy is lehetne használni, hogy feltételtől függene a végrehajtása, valahogy így:
IF A = B THEN PRINT A
Ugyanez a RETURN esetében így nézne ki:
IF A = B THEN RETURN
Arra lennék kiváncsi, hogy hasznos lenne ez az apró bővítés, vagy inkább káros, mert csak fölöslegesen bonyolítaná el a nyelvet?
Ki mit gondol erről?
IF A = B THEN RETURN
Ez visszatérési érték nélküli? Mint egy void-os függvény esetén a return? Ez megszokott más nyelvekben is, hogy ha ez van, akkor fejezze be.
pl.:
if (varBool) {
... return;
}
Nem értem, hogy miért okozna ez fennakadást az érdemezésben.
Ha jól értem ez egy nem strukturált nyelv mint pl. a BASIC, vagy ha ciklus sincs (ami azért elég merész, mert a legtöbb CPU assembly-ben támogatott a ciklus készítés ilyen-olyan módon), akkor ez inkább egy assembly jellegű nyelv.
Ezekben a nyelvekben nem tiltja semmi az IF ... THEN RETURN jellegű szerkezeteket. Bár nem mindig célszerű, föleg ha stacket használ adatok pakolására. Bár nem tudom nálad van-e stack kezelés.
Önmagábn egy IF ... THEN RETURN jellegű szerkezet "nem jvasolt" mert irtózatosan áttekinthetetlen lesz a program, hogy éppen most hol merre "kavarog" a vezérlés. Nagyon sok hibalehetőséggel bír.
Érdemes tudni, hogy ez a nyelv nagyon minimalista. Ez abban is érvényre jut, hogy nincs külön szubrutin és nincs stack sem.
Cimkék vannak és szubrutint úgy lehet létrehozni, hogy a cimke alatti utasítások sorainak végére a programozó odatesz egy return-t. Ha ez a return hiányzik, akkor a cimke után folytatódik a végrehajtás. Valahogy így:
cimke_A:
utasitas1
utasitas2
return
cimke_B:
utasitas1
utasitas2
utasitas3
utasitas4
utasitas5
utasitas6
cimke_C:
utasitas1
utasitas2
utasitas3
jmp cimke_A
utasitas1
utasitas2
jmp cimke_C
Látható, hogy a cimke_A alatti rész egy szubrutin, a cimke_B és cimke_C viszont nem az. Utóbbi kettőnél nem térül vissza a végrehajtás csak a cimke_A esetén, hiszen csak az alatt van return.
>> a visszatéréses ugrásra vannak egészen jó megoldások.
Tudnál ilyeneket mondani?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!