0971-06 modul Szövegfeldolgozás Speciális informatikai feladatok
Információtartalom vázlata: A szoftver fogalma A szoftverek csoportjai: gépi kódra fordított szoftverek (előnyök, hátrányok) A szoftverek csoportjai: interpretert igénylő szoftverek (előnyök, hátrányok) Alkalmazási példák a kiadványszerkesztésben A szoftverek csoportjai: gépközeli szoftverek A szoftverek csoportjai: felhasználói szoftverek A szoftverek csoportjai: operációs rendszerek Felhasználói szoftverek csoportjai
Software fogalma: Minden olyan program, amely a számítógépen fut, valamint a hozzátartozó dokumentációk .
Szoftvernek nevezzük a számítógépre írt programokat (operációs rendszer, szövegszerkesztő, böngésző, stb.) és az ezekhez mellékelt írásos dokumentációkat. A szoftvereket programozók készítik, szellemi termékek, kézzel nem megfoghatóak (csupán a szoftvereket hordozó eszközöket – CD, DVD tudjuk megfogni). A szoftver a számítógépen futó programok összefoglaló neve, a hardver egységeket működtető-, és vezérlő programok összessége.
Programozási nyelvek generációi: Első generáció, vagy 1GL: - a processzorgépi kódja Kettes számrendszerben. Előnye: nagyon hatékony, hátránya: rendkívül nehéz programot írni. Pl.: 011010 – az összeadás gépi kódja, 10011010010, 11100111 – a két összeadandó szám. Ekkor ennek a két számnak az összeadását gépi kódban pl. a köv. képpen fejezhetjük ki: 011010 10011010010 11100111
Második generáció vagy 2GL: Alacsony szintű nyelvek, assembly [eszembly] nyelvek. A műveletek kettes számrendszerben kifejezett gépi kódját a műveletekre emlékeztető un. (mnemonic) megnevezésekkel helyettesítjük. PL: ADD 01110110 11011001 ADD AX BX
Harmadik generáció vagy 3GL Magas szintű nyelvek: Az emberi nyelvhez, az ember gondolkodásmódjához közelebb állnak mint a gép logikájához. Utasítás készletük független a gépi kódtól. Nem kell ismerni a gépi kódot! Pl.: BASIC Pascal C Algol Fortran – műszaki tudományos feladatok megoldására. Cobol – ügyviteli feladatok megoldására. C++ Java
Negyedik generáció, vagy 4GL:. Nem önállóprogramozási nyelvek, hanem fejlesztő eszközök: programozási nyelv + program fejlesztését segítő eszközök. Részben automatikusan állítják elő a program kódját. (A program 90%-át elő tudják állítani.) Pl.: Delphi, Kylix, Visual Studio programozási nyelvei, Visual FoxPro, Visual Basic,Visual Prolog stb.
1 Az alkalmazások gépi kódban töltõdnek be és értelmezõdnek. Roppant kellemetlen lenne azonban direkt gépi kódban programot írni és még kellemetlenebb karbantartani, tehát javítani, bõvíteni. Gondold meg: fejben kell tartani minden utasításhoz tartozó kódot és megérteni pedig a számokból kell a programot. Ugyancsak nem elõnyös, hogy a gépi kódú utasítások nagyon alacsony szintûek, egy betû képernyõre írása több száz sor is lehet. Dacára tehát annak, hogy a programunk mindig (még a Jávában is) a processzor saját nyelvén, tehát gépi kódban fut le, szinte sohase ebben írják, hanem valamilyen, ember számára jobban emészthetõ formában.
legegyszerûbb ilyen forma az a kódolás, amikor a gépi kód minden egyes utasításának egy szöveges utasítást feleltetnek meg, ez a nyelv az assembly. Az assembly-ben könnyebbség, hogy nem kell számokra emlékezni, de továbbra is adott az utasítások egyszerûsége, assembly-ben nagyon munkaigényes programot írni. Az assembly programot a processzor természetesen nem képes végrehajtani (hiszen az csak ember számára olvasható (olvasható?) szöveg), elõbb kell egy program, az assembler, ami gépi kódú programot csinál belõle
A fenti trükköt, miszerint a programot valamilyen ember által könnyebben érthetõ formában írjuk, amit aztán egy másik program segítségével etetünk meg a számítógéppel, széles körben használják és nem csak olyan egyszerû nyelvekkel, mint az assembly. Ha az általunk írt förmedvényt (avagy zseniális programot) amúgy is el kell olvasnia egy másik programnak, hogy a géppel megetesse, akkor nem kell a gépi utasítások alacsony szintjéhez kötõdnünk, kényelmesebb nyelveket is létrehozhatunk ízlésünk szerint.
Így jöttek létre a számítógépes nyelvek tucatjai, a LISP, a FORTRAN, a C, a BASIC, a Pascal, a C++ és a Jáva, hogy a többiekrõl ne is beszéljünk. Ezek a nyelvek elsõ pillantásra nagyon különböznek, de igazából csak néhány alapkoncepció variálására épülnek. Ahogy az egyik kalapács lehet jó és a másik rossz, úgy vannak jó és rossz nyelvek is. Sõt, ahogy az egyik kalapács jó lehet kõtörésre, a másik cipészkedésre, feladathoz is érdemes nyelvet választani. Az eddig legsikeresebbnek bizonyult programozási nyelv a C ill. az objektumorientált bõvítése a C++, ezt a két nyelvet a rendszerprogramozástól csillagászati programok készítéséig mindenre fel lehet használni.
Mint megállapítottuk, minden programnál, ami nem gépi kódban íródott, kell egy másik program, ami a gép szájába rágja, mit is akartunk mondani.
Az emberi fordításoknál, itt is sokféle felállás lehetséges Az emberi fordításoknál, itt is sokféle felállás lehetséges. Például leírhatjuk az instrukcióinkat, azt egy tolmács lefordíthatja eszperantóra és odaadhatja a munkásnak, aki ezek után elvégzi a feladatot. Világos, hogy a munkásnak ez jó, hiszen amikor dolgozik, már nem kell a fordítással törõdnie, ugyanakkor az instrukciók korrekt lefordítása munkaigényes feladat és meg se változtathatjuk õket menet közben.
A fenti példához teljesen hasonló módon és ugyanazokkal az elõnyökkel-hátrányokkal mûködnek a compiler-ek vagy magyarul a fordítóprogramok
Ezek a programok megeszik az általunk írt programot és közvetlenül végrehajtható gépi kódot generálnak belõle. A legfõbb elõny a gépi kódra fordított program gyors futási sebessége és a jó minõségû fordítás, hiszen a fordítóprogramnak egy csomó ideje van gondolkodni a legjobb variáción. Példának okáért a C, C++ és a FORTRAN nyelvek leggyakoribb implementációi fordítóprogramot alkalmaznak.
2 Másik lehetõség, hogy szinkrontolmácsot alkalmazunk és miközben mi elõadjuk a mondókánkat, õ menetközben fordítja le eszperantóra. Hátrány persze, hogy a fordítás ideje hozzáadódik a munkavégzés idejéhez, hiszen amíg a munkás a tolmácsot hallgatja, nem dolgozik.
fenti séma az interpreter-ek vagyis az értelmezőprogramok megoldása. Itt a programunkat az értelmezõprogram futásidõben fordítja le
Elõnye: a rendkívül gyors fejlesztési idõ (nincsenek lassú fordítási menetek) és elvileg lehet olyan programot is írni, ami újraírja önmagát, és menetközben is megváltoztathatjuk az instrukciókat Hátrány: a végrehajtási sebesség lassúbb. A LISP és a BASIC legtöbbször értelmezõprogramos megvalósításban szokott rendelkezésre állni.
3 Tegyük fel, hogy eszperantó anyanyelvû alkalmazottunk mellett van olyan is, aki csak belgául tud. Akár a fordítóprogramos, akár az értelmezõprogramos megoldást választjuk, mindenképpen meg kell duplázni a fordítók számát. Pontosan ugyanez a probléma akkor is, ha szempont az, hogy minnél többfajta gépen menjen a programunk. Mindegyikben más processzor lenne, ami más gépi kódot ért, más fordító fog kelleni. Áthidaló megoldásként kitalálhatjuk, hogy soknyelvû alkalmazottainkkal piktogrammokkal fogunk kommunikálni. Tolmácsunk az instrukciókat piktogrammnyelvre fordítja, amit kitûnõ munkásaink sokkal gyorsabban fognak fel,
Gépközeli szoftverek: megkönnyítik az operációs rendszerek használatát pl: Norton total Commander filekezelők Rendszerkarbantartó segédszoftverek Scandisk format Eszköz illesztő, kezelő szoftverek segítik a programkészítést (pl: Turbo Pascal programozási nyelv)
Alkalmazói és felhasználói szoftverek: Valamilyen konkrét feladat megoldására kifejlesztett szoftver. A fontosabb területek: szövegszerkesztés, adatbázis-kezelés, táblázatkezelés, az információ grafikus megjelenítése, számítógéppel támogatott tervezés, szimuláció, játék, szórakozás.
operációs rendszerek: Olyan szoftverek, amelyek a számítógép működtetéséhez szükséges parancsokat értelmezni tudják és azokat végre is hajtják. Feladatai: a hardver kezelése, a programok betöltése az operatív tárba és azok futtatása, kapcsolattartás a futó programokkal és a felhasználóval, a háttértárak tartalmának kezelése, adatok kezelése és átvitele, megszakítás- és hibakezelés.
VÉGE