Programozási nyelvek

32 33 34 1 2 35 36 37 38 39 40 41 4 42 43 44 45 46 47 5 48 49 6 50 51 52 53 54 55 56 57 58 9 59 10 60 7 61 62 63 64 65 66 67 68 69 8 70 71 72 11 73 74 75 76 77 78 14 79 80 81 31 17 15 82 16 20 83 84 85 19 86 87 88 30 89 18 90 21 91 92 93 94 95 96 97 98 99 22 100 101 102 103 104 105 23 24 106 107 108 26 109 13 110 111 29 28 112 113 114 115

Kedvezmény 50% kedvezmény a tanfolyamokhoz! Gyorsan beadni
kérés

30 tanfolyam átképzése 6900 rubelből.

Minden tanfolyam 3000 rubelből. 1500 rubel.

36 tanfolyam frissítése 1500 rubelből.

A számítógépek termelékenységének növekedése és a használt szoftver összetételének változásai egyre fontosabbá teszik a forgatónyelvek szerepét a jövőbeni alkalmazás létrehozásában. Ezek a nyelvek eltérnek a rendszerszintű programozási nyelvektől, mivel elsődleges céljuk, hogy különböző összetevőket és alkalmazásokat társítsanak egymással. egyfajta ragasztó szerepet tölt be. Az adatok leírása nem azonosított megközelítéseinek alkalmazását találja, amely lehetővé teszi a programozás magasabb szintre állítását és a fejlesztési folyamat felgyorsítását a rendszer szintű nyelvekhez képest.

Az elmúlt 15 évben a számítógépes programok írási módszere radikális változáson ment keresztül. Az, hogy a fejlesztők költözött a rendszer szintű programozási nyelvekről, például. És a. C ++, a script nyelvek, amelyek példái Purl Tell. Bár a változás nagy számban érintett, csak néhányan tudják. ez ténylegesen megtörténik. és még kevesebb lesz megtalálható. aki megmagyarázza az okokat.

Ezeket a nyelveket különböző célokra hozták létre, amelyek számos alapvető különbséget eredményeztek közöttük. Olyan rendszereket fejlesztettek ki, amelyek az adatstruktúrák és algoritmusok létrehozását a semmiből kezdik az ilyen primitív elemektől. mint a számítógépes memória szó. Ezzel ellentétben. parancssori nyelveket hoztak létre a kész programok összekapcsolására. Használatuk azt jelenti, hogy elegendő választék áll rendelkezésre az erős komponensekhez. Csak össze kell őket kötni egymással. A rendszerszintű nyelvek szigorú típusú ellenőrzést használnak, amely segítséget nyújt az alkalmazásfejlesztőknek az összetett feladatok megoldásában; a szkriptnyelvek nem használják a típus fogalmát, ami egyszerűsíti az összetevők közötti kapcsolatok létrehozását és felgyorsítja az alkalmazásrendszerek fejlődését.

E két nyelv nyelvei kiegészítik egymást. és a legtöbb számítógépes platform a 60-as évek közepétől fogva fel van szerelve. és mások. A komponens infrastruktúrákban azokat alkalmazzák. mint általában. Az összetevők együtt alkotják a rendszer szintű programozási nyelveket. és egymással való kommunikációjuk során szkriptnyelveket használnak. Ugyanakkor számos jelenlegi trend. beleértve a gyorsabb gépek és fejlettebb szkriptnyelvek megjelenését. növelve a grafikus felhasználói felület és az összetevő architektúrák fontosságát. és az internet növekvő népszerűsége. rendkívül kiterjesztette a forgatónyelvek alkalmazási körét, és ezeknek a trendeknek a fejlődése a következő évtizedben folytatódni fog. Ennek eredményeképpen egyre több alkalmazás fog létrejönni teljes egészében a szkriptnyelvekben. és a rendszer szintű programozási nyelvek szerepe szinte kizárólag az alkotóelemek létrehozására korlátozódik.

2. Rendszer szintű programozási nyelvek.

A szkriptnyelvek és a rendszer közötti különbség megértése. érdemes felidézni az utóbbi történelmét. Ez az első alkalom az assembler nyelvek alternatívájaként jelent meg, lehetővé téve, hogy a programban egy adott hardver alrendszer szinte minden jellemzőjét használják. A nyelv minden kijelentése pontosan egy gépi utasításnak felel meg, és a programozónak olyan alacsony szintű részletekkel kell foglalkoznia, mint a regiszterek elosztása és az eljáráshívások sorrendje. Ennek eredményeképpen a nagyszerű programok írása és karbantartása az assembler nyelvén rendkívül nehéz.

Az 1950-es évek végére kezdtek megjelenni a magasabb szintű programozási nyelvek, mint a Lisp. Fortran. ALGOL. Többé nem volt pontos egyezésük a nyelvi konstrukciók és a gépi utasítások között. A forráskódsorok összeállítását bináris parancsok sorrendjében végezte a fordító. Idővel számuk növekedett a PL / 1, Pascal nyelveknél. C. C ++, Java. Mindegyik kevésbé hatékonyan használja a hardvert, mint az összeszerelő nyelvek, de lehetővé teszi az alkalmazások gyorsabb létrehozását. Ennek eredményeként szinte teljesen kiszorították az assembler nyelveket nagy alkalmazások létrehozásakor.

Magas szintű programozási nyelvek.

A rendszerszintű programozási nyelvek eltérnek az összeszerelőktől, először is, mivel magasabb szintűek, másodsorban szigorúbb típusú ellenőrzést alkalmaznak. A "magas szintű" kifejezés a következőket jelenti: sok alkatrész automatikusan feldolgozásra kerül, és a programozónak kevesebb sort kell megírnia alkalmazásának létrehozásához. Különösen:

A fordító felelős a regiszterek terjesztéséért, így a programozónak nem kell kódot írni, amely biztosítja az adatoknak a regiszterek és a memória közötti átvitelét;

Az eljáráshívások sorrendje automatikusan generálódik; a programozónak nem kell leírnia a funkcionális argumentumok elhelyezését a veremre és azok elhelyezését;

A menedzsment struktúrák leírásához a programozó olyan kulcsszavakat is használhat, mint ha. míg; azok a gépi utasítások sorozata, amelyek megfelelnek ezeknek a leírásoknak, amelyeket a fordító dinamikusan generál.

Ezzel szemben a modern programozási nyelveket szigorú gépírás jellemzi. A rendszerszintű programozási nyelvben lévő minden változót be kell jelölni egy adott típusú (pl. Egész vagy mutató) karakterláncra való kijelölésével, majd csak az adott típusnak megfelelő módon kell használni.

Az adat- és programkódot elválasztják; egy új kód létrehozása a program végrehajtása során nehéz, ha csak lehetséges. A változók struktúrákba vagy tárgyakká alakíthatók, egy jól definiált alszerkezettel és a komponensük manipulálási módjaival. Egy adott típusú objektum nem használható olyan helyzetben, amikor egy másik típusú objektumot írnak elő.

A programozási nyelvek készen álltak a kész programok összekapcsolására. Használatuk azt jelenti, hogy elegendő választék áll rendelkezésre olyan erőteljes összetevők számára, amelyeket csak egymással kell összekapcsolni.

A gépelés számos előnnyel jár. Először is, a nagy programok egyre inkább kezelhetővé válnak. A típusrendszer világossága egyértelművé teszi a programozó számára, hogy mi a konkrét adatok; könnyen megkülönbözteti egymástól és ennek megfelelően a használatát. Másodszor, a fordítók a típusinformációkat használják a hibák valamilyen jellegének észleléséhez, például lebegőpontos szám mint mutató használatához. Harmadszor, a gépelés javítja az alkalmazás teljesítményét, lehetővé téve a fordítók számára, hogy speciálisabb kódot generáljanak. Például ha a fordító tudja, hogy egy változó mindig egész számokat tartalmaz, akkor egész számokat generálhat annak manipulálására; Ha a típus nem ismert a fordítóban, akkor további instrukciókat kell beírnia, hogy ellenőrizze a típust futásidőben.

Az 1. ábra számos programnyelv eloszlását mutatja a teljesítmény és a gépelés súlyossága szempontjából.

5. A forgatókönyveket leíró nyelvek.

Scriptleírás nyelvek, például Perl. Python. Rexx. Tcl. Visual Basic és UNIX shell nyelvek. feltételezzen olyan programozási stílust, amely nagyon különbözik a rendszer szintű nyelvtől. Nem arra szolgálnak, hogy az alkalmazást a semmiből vegyék fel, hanem az összetevők kombinációját, amelynek készletét előzetesen más nyelvek segítségével hozzák létre. Például Tcl. A Visual Basic segítségével felhasználói felületeket lehet létrehozni a meglévő vezérlőkből, és a UNIX shellekhez tartozó szkriptnyelvek csővezetékeket képezhetnek az adatfolyamok feldolgozásához egy szabványos szűrőkészletből. A szkriptnyelveket gyakran használják a kész alkotóelemek új funkciók kiegészítésével; Azonban ez a tevékenység ritkán foglalkozik olyan összetett algoritmusok vagy adatstruktúrák létrehozásával, amelyek már általában már be vannak ágyazva az összetevőkbe. Néha a szkriptnyelvek még kötegek vagy rendszerintegrációs nyelvek.

A szkriptnyelvek esetében hiányzik a gépelés, ami csak bonyolítja a komponensek összekapcsolásának feladatát. Minden elemük ugyanolyan megjelenést és funkciót lát el, és teljesen felcserélhető. Például a Tcl vagy a Visual Basic programban egy változó a program egy pontján egy karakterláncot tartalmazhat, és egy egész számot a másikban. A kód és az adatok is gyakran felcserélhetők. Például Tcl. A Visual Basic változó tartalmazhat egy karakterláncot a program egy pontján, és egy egész számot a másikban. A kód és az adatok is gyakran felcserélhetők, így a program képes egy másik program létrehozására - és azonnal futtatni. Jellemzően, a szkriptnyelvek olyan változó karakterláncokat használnak, amelyek egységes reprezentációs mechanizmust biztosítanak a különböző entitások számára.

A változók osztásnyelvben való hiánya a típusokba leegyszerűsíti az összetevők összekapcsolását egymás között. Az elemek használatára vonatkozóan nem állnak fenn a priori korlátozások, és az érték összes összetevője egyetlen formában jelenik meg. Így bármelyik összetevő vagy érték alkalmazható bármely helyzetben; amelyeket a használat bizonyos módjaira terveztek, teljesen más dolgokba vonhatók be, amelyeket alkotójuk soha nem gondolt. Például a UNIX shell-ban bármely szűrőprogram munkája magában foglalja az adatok olvasását a bemeneti adatfolyamból és a kimeneti adatfolyamba írását. Bármelyik két ilyen programot úgy lehet csatlakoztatni, hogy egy kimeneti streamet hozzárendel a másik bemeneti áramához. A következő shell parancs három szűrőből álló rendszert képvisel, és a kiválasztott szövegben a "scipting" szót tartalmazó töredéksorokat számolja:

Válassza a | lehetőséget grep szkript | WC

A program kiválasztja a képernyőn aktuálisan kijelölt szöveget és kimeneti adatfolyamot ad ki; A grep szűrő elolvassa a bemeneti áramot, és átadja a "parancsfájl" szót tartalmazó kimeneti sorokat; és a program WC számolja a sorok számát a streamben. Ezek közül az összetevők közül bármelyik megtalálhatja az alkalmazást különböző helyzetekben, és minden egyes alkalommal megoldja a különböző feladatokat. A rendszer szintű programozási nyelvek erőteljes írása megnehezíti a kód újrafelhasználását. Bátorítja a programozókat, hogy hozzanak létre nagyszámú inkompatibilis interfészeket, amelyek mindegyike saját típusú objektumok használatát követeli meg. A fordító nem engedélyezi más típusú objektumok számára az interfész használatát annak ellenére, hogy az eredmény nagyon hasznos lehet. Így egy új objektum meglévő interfésszel történő használatához a programozónak "adaptert" kell írnia, amely az objektumot átmásolja arra a típusra, amelyre a felületet tervezték. Az "adapter" használata viszont egy rész, vagy egész alkalmazás egészének kompilációját igényli. A szoftver bináris fájlok formájában történő terjesztésének jelenleg domináns módja lehetetlenné teszi ezt a megközelítést.

Egy tipikus programozási nyelv előnyeinek kiértékeléséhez vegye figyelembe a következő példát a Tcl-ben.

Gomb .b -text Hello! -font - parancs.

Ez a parancs létrehoz egy új gombot a képernyőn a Hello címkével. font Time 16 elem, amikor rákattintunk, és rövid üzenet jelenik meg. A különböző típusú elemek hat eleme egy sorba illeszkedik: a parancs neve, a gomb (.b) neve, az attribútumazonosító (- szöveg - betűtípus - parancs), az egyszerű sorok (Hello, Hello), a betűkészlet specifikációja (Times 16) , amely a vázlat (Times) nevét és a pontok (16) méretét, valamint az egész Tcl parancsfájlt tartalmazza (hello). Minden elemet egységes módon mutatnak be - húrok formájában. Ebben a példában az attribútumok véletlenszerű sorrendbe sorolhatók, és a nem definiált attribútumok (több mint 20) hozzárendelhetők az alapértelmezett értékekhez.

Ha Java-ban kerül végrehajtásra, akkor ugyanaz a példa hét sornyi kódot igényel, amelyek a két módszert alkotják. A Microsoft Foundation Classes (MFC) könyvtárat használó C ++ esetében a skálák körülbelül 25 sornyi kódra emelkedtek, ami három eljárást tartalmaz. A betűkészlet-kiválasztás önmagában többszörös hozzáférést igényel az MFC funkciókhoz

Cfont * fontPtr = új Cront ();

fontPtr-> Kréta betűtípus (16, 0, 0, 0, 700,

0, 0, 0, ANSI_CHARSET,

"Times New Roman");

A növekvő forgatókönyveket leíró nyelvek

A forgatókönyvek leírásához használt nyelvek sokáig léteztek, azonban az utóbbi években számos tényező kombinációjának eredményeként jelentőségük jelentősen megnőtt. A legfontosabb ilyen tényező - orientáció felé a mellékletben összeállított kész komponensek, mint a három illusztrációk megnyilvánulása lehet nevezni a grafikus felhasználói interfész, Internet, infrastruktúra fejlesztés komponense.

7. Grafikus felhasználói interfészek

Az első grafikus felhasználói felület 1980 elején jelent meg és az évtized végére elterjedt. Ma a program ezen része sok projektben való leírása a fejlesztők összes erőfeszítéseinek több mint felét veszi igénybe. A grafikus felhasználói felület alapvetően integrált komponensrendszer. A létrehozás célja nem az új funkciók megvalósítása, hanem a grafikus vezérlések és az alkalmazás belső részeinek funkciói közötti kapcsolatok létrehozása.

Egyes rendszerek vannak ellátva egy nagyon kényelmes eszköz megalkotásához grafikus képernyők, amelyek elrejtik a komplexitás a mögöttes nyelvet, de amint felmerül az igény, hogy írjon kiegészítő kód, például, hogy bővíteni lehessen a viselkedés felület elemeit, a fejlesztő egyszer nehézségek merülnek fel. A legjobb felgyorsult fejlesztési környezetek a script nyelveken alapulnak: Visual Basic. HyperCard. TCL / TK.

8. Komponens infrastruktúra

A scripting nyelvek harmadik példája a komponens infrastruktúrák, például az ActiveX. Java bab. Bár a rendszer szintű programozási nyelveket sikeresen használják komponensek létrehozására, az alkalmazások építésének feladatai kényelmesebben megoldhatók szkriptekkel. Annak érdekében, hogy az infrastruktúra komponenseinek manipulálása ne legyen jó szkriptnyelven, az előnyei jelentős része elvész. Ez részben magyarázatot ad arra, hogy az összetevő infrastruktúrák egyre népszerűbbek lettek a PC-világban, ahol olyan kényelmes kötőanyag van, mint a Visual Basic. mint más platformokon, mint például a Unix / Cobra. Az összetett infrastruktúrák, amelyekhez hiányoznak a szkriptnyelvek.

9. A forgatókönyvek technológiája

Ráadásul a szkriptek technológiája nagymértékben kihasználta a számítástechnikai eszközök termelékenységének növekedését. Nem is olyan régen, hogy elfogadható sebességet érjünk el a bonyolultság bármely szintjének alkalmazásához, szükségessé vált a rendszer szintű nyelvek elérése. Bizonyos esetekben még a hatékonyságuk is elégtelen volt, és a programot összeszerelőn kellett megírni. A modern gépek 100-500-szor gyorsabban működnek, mint a 80-as évek számítógépei, és termelékenységük folyamatosan megduplázódik 18 havonta. Ma számos alkalmazás valósítható meg a szkriptnyelvekben, mégis kiváló teljesítményt nyújtva. Például egy TCL parancsfájl lehetővé teszi, hogy több ezer objektumot manipuláljon, miközben fenntartja a jó interaktivitást. A számítógépek gyorsabbá és gyorsabbá válásáért a szkriptnyelvek használata egyre vonzóbbá válik egyre több nagyszabású alkalmazás megvalósításához.

10. Egyéb nyelvek

A forgatónyelvek egy kicsit eltérõ kompromisszumokon alapulnak, mint a rendszerszintû nyelvek. Ebben az esetben a végrehajtás sebessége és a típusellenőrzés súlyossága az elsőbbségi skála alacsonyabb prioritásába kerül, de a programozó termelékenysége és újrafelhasználása magasabb. Ez a korreláció egyre inkább indokoltnak bizonyul, mivel a számítógépek gyorsan és olcsóbbá válnak, ami nem mondható el a programozókról. A rendszer programozási nyelvek jól alkalmazhatók okozó alkatrészek ahol a legnagyobb nehézséget a végrehajtás algoritmusok és adatszerkezetek, míg script nyelvek, amelyek jobban megfelelnek az építési alkalmazások előre beépített komponensek, ahol a nehézség abban rejlik létrehozó összekapcsolási linkek. Az utóbbiak feladata egyre szélesebb körben elterjedt, így a forgatókönyvek paradigmájának szerepe a következő században növekedni fog.

Kapcsolódó cikkek