Keresés

Új hozzászólás Aktív témák

  • dabadab

    titán

    válasz #90088192 #6224 üzenetére

    A számítástudomány az tényleg sokkal előrébb járt, mint maguk a számítógépek, George Boole (a Boole-algebra (a számítógépeknél alkalmazott logika) megalkotója halála után még majdnem egy évszázadott kellett várni az első digitális számítógépre, az információelméletről meg Shannon kb. mindent elmondott az 1940-es években.

    A GOTO-problematika viszont nem ide tartozik, az színtisztán gyakorlati kérdés - azt Ada Lovelace nem láthatta előre, amikor Babbage gépére talált ki pár soros programokat, hogy milyen érzés lesz olyan kódot túrni, amit egy tíz évvel ezelőtt más céghez távozott kolléga írt :)

    Az, hogy feltétlenül kell egy olyan utasítás, ami megváltoztatja a program végrehajtási helyét, az soha nem is volt kérdés, persze, hogy kell. Sőt, több is kell, mert olyanok is kellenek, amik különféle feltételek alapján változtatják meg.

    Az összes processzorban vannak ilyen utasítások, senkinek semmi baja nincs ezzel, senki nem akarja kiírtani, vagyis tulajdonképpen bármilyen program fut a gépeden az tele van JMP-kkel (a GOTO gépi kódú megfelelőjének ez a mnemonikja).

    Viszont a magasabb szintű nyelvekbe ezt egyre inkább becsomagolták, mint ahogy minden egyéb ilyen nyers dolgot is, hiszen a programozók általában nem arra vágynak, hogy megváltoztassák a programszámláló tartalmát, mert csak, hanem valamilyen összetett struktúrát hoznak létre: hurkot, feltételes programvégrehajtást, ilyeneket. Márpedig ha ők ilyeneket akarnak létrehozni, akkor adjunk a kezükbe olyan eszközöket, amikkel ezt csinálják közvetlenül, ahelyett, hogy JMP-vel bohóckodnának.

    Ezzel együtt a GOTO megmaradt egy csomó magasabb szintű nyelvben is, egyszerűen azért, mert az azokban meglévő struktúrák lefedték a GOTO-használat nagyon-nagyon-nagy részét, de nem az összeset, így aztán maradtak olyan helyek, amikor az ember azt használja, mert adott esetben nincs jobb megoldás rá.

  • pmonitor

    aktív tag

    válasz #90088192 #6224 üzenetére

    BASIC != Visual Basic. A BASIC nem magas szintű nyelv(legalábbis ez alapján). Amit írsz, hogy pont azért olyan amilyen, hogy Egyszerű legyen használni, ez a Visual Basic-re igaz. A BASIC-et nem volt 1szerű használni. Ha azt látod, hogy GOTO 100, akkor honnan tudod, hogy mi van a 100-as sorban? De szükség volt a GOTO-ra a sorok számozása miatt. A Visual Basic-et valóban 1szerű használni, de ott meg szükségtelen a GOTO használata. Tényleg csak hagyománytiszteletből maradt benne.

    Azért a marcsának és a csajnak nem ugyanaz az eredménye. Marcsánál nincs, ami olajozza/ápolja a matériát! :(

Új hozzászólás Aktív témák

Hirdetés