tévék. Konzolok. Projektorok és tartozékok. Technológiák. Digitális TV

Mi volt az első programozási nyelv? Az első magas szintű programozási nyelv a Plankalküll. Runtime - program végrehajtása

Az első magas szintű számítógépes programozási nyelv, amelyet implementáltak, a FORTRAN (FORmula TRANslator) volt. Az IBM Corporation programozóinak egy csoportja hozta létre 1954 és 1957 között. Néhány évvel a létrehozása után megkezdődött a Fortran kereskedelmi értékesítése - korábban vagy gépi kódokkal vagy szimbolikus összeszerelőkkel.

Először is, a Fortran széles körben elterjedt a tudományos és mérnöki közösségben, ahol számításokat végeztek vele.

A mai Fortran egyik fő előnye a benne írt programok és rutinkönyvtárak hatalmas száma. Ennek a nyelvnek több ezer csomagjában találhat csomagokat komplex integrálegyenletek megoldására, mátrixszorzásra stb. Ezeket a csomagokat sok évtizeden keresztül hozták létre – a mai napig nem veszítették el relevanciájukat. A legtöbb könyvtáruk jól dokumentált, hibakereső és rendkívül hatékony, de folyamatosan próbálják automatikusan átalakítani a Fortran kódot modern szoftverekké.

A Fortran bevezetésének története

A Fortran nevű hatékony alternatív nyelv kifejlesztése után a számítógépes közösség szkeptikusan fogadta az új terméket. Kevesen hitték, hogy a Fortran segítségével a programozás hatékonyabbá és gyorsabbá válik. Idővel azonban a tudósok felértékelték a nyelv képességeit, és elkezdték aktívan használni intenzív szoftverszámítások írásához. A Fortran különösen alkalmas volt műszaki alkalmazásokra, amelyekben nagy segítséget nyújtott minden típusú adat átfogó gyűjtése.

A modern Fortran olyan képességekkel egészült ki, amelyek lehetővé teszik az újak hatékony használatát szoftver technológiákés programszámítási architektúrák.

A Fortran elképesztő sikere után az európai vállalatok félni kezdtek attól, hogy az IBM vezeti a számítógépipart. Az amerikai és a német közösségek saját bizottságokat hoztak létre egy univerzális programozási nyelv kifejlesztésére, de később egyesültek egy bizottságba. Szakemberei fejlődtek új nyelvés Nemzetközi Algorithmikus Nyelvnek (IAL) nevezték el, de mivel az ALGOritmikus nyelv gyorsan az új termék általánosan használt neve lett, a bizottságnak az IAL hivatalos nevét ALGOL-ra kellett változtatnia.

Nagyon fontos ismerni a programozási nyelvek általános történetét és az ismert és ismeretlen nyelvek fejlődéstörténetét. Ebben a cikkben megismerkedhet ezzel, de először emlékezzünk a „Mi a programozási nyelv?”

Programozási nyelv egy olyan jelölési és szabályrendszer, amely lehetővé teszi, hogy programokat írjon egy probléma megoldására szekvenciális szöveg formájában, egy személy számára kényelmes formában.

50-es évek

A huszadik század ötvenes éveiben, a vákuumcsöves számítógépek megjelenésével megkezdődött a programozási nyelvek gyors fejlődése. A programozás azzal kezdődött, hogy a programokat közvetlenül gépi utasítások formájában írtam (kódokban, ahogy a programozók mondják). A számítógépek, amelyek akkoriban lényegesen többe kerültek, mint bármely program fejlesztése, rendkívül hatékony kódot igényeltek.

A kódolás megkönnyítésére fejlesztették ki a gépi orientáltságot, amely lehetővé tette a gépi utasítások szimbolikus formában történő megírását. Az összeállítás nyelve az adott számítógép utasításrendszerétől függött. Kellően kényelmes volt kis feladatok programozásához, amelyek maximális végrehajtási sebességet igényeltek.

A nagy projekteket azonban nehéz volt Assembly nyelven kidolgozni. A fő probléma az volt, hogy egy Assembly-ben írt program egy adott számítógép architektúrájához volt kötve, és nem volt átvihető más gépekre. Amikor a számítógépet továbbfejlesztették, az Assemblyben lévő összes programot újra kellett írni.

A számítógépek megjelenésével szinte azonnal kialakultak a magas szintű nyelvek, pl. olyan nyelvek, amelyek nem függenek egy adott architektúrától. Egy program magas szintű nyelven történő végrehajtásához először le kell fordítani a gépi parancsnyelvre. Az ilyen fordítást végző speciális programot fordítónak vagy fordítónak nevezik.

A lefordított programot ezután közvetlenül a számítógép hajtja végre. Lehetőség van arra is, hogy a programot egy köztes nyelvre lefordítsák, amely nem függ egy adott számítógép architektúrájától, de ennek ellenére a lehető legközelebb áll a gépi parancsnyelvhez.

Ezután a köztes nyelvű program végrehajtásra kerül speciális program, amelyet tolmácsnak neveznek. Lehetőség van menet közben is fordítani, amikor a végrehajtott programrészletet közvetlenül a végrehajtás előtt lefordítják egy köztes nyelvről a gépi parancsnyelvre.

Az 50-es évek közepén John Backus vezetésével kifejlesztették a FORTRAN magas szintű algoritmikus programozási nyelvet az IBM számára. Annak ellenére, hogy már voltak fejlesztések az aritmetikai kifejezéseket gépi kóddá alakító nyelveken, létrejött a FORTRAN nyelv (FORmula TRANslator), amely feltételes utasítások és bemeneti/kimeneti operátorok felhasználásával számítási algoritmust írt. a magas szintű programozási nyelvek korszakának kiindulópontja.

Az eredetileg az IBM architektúrát célzó FORTRAN nyelv alternatívájaként az ALGOL-t (ALGOritmikus nyelv) Peter Naur vezetésével fejlesztették ki az 50-es évek végén. A nyelv fejlesztőinek fő célja a számítógépes rendszer sajátos architektúrájától való függetlenség volt.

Ezen túlmenően az ALGOL nyelv megalkotói egy olyan nyelv kifejlesztésére törekedtek, amely alkalmas az algoritmusok leírására és a matematikában elfogadotthoz közeli jelölési rendszer használatára. A FORTRAN és az ALGOL voltak az első nyelvek, amelyek a számítási programozásra összpontosítottak.

60-as évek

A 60-as évek végén Nayard és Dahl vezetésével kifejlesztették a Simula-67 nyelvet a felhasználó által definiált adattípusok koncepciójával. Valójában ez az első nyelv, amely az osztályok fogalmát használja.

70-es évek

A 70-es évek közepén Wirth a Pascal nyelvet javasolta, amely azonnal széles körben elterjedt. Ezzel egy időben az amerikai védelmi minisztérium kezdeményezésére megkezdődött az Ada nevű magas szintű nyelv létrehozása – Ada Lovelace, a programozó és Lord Byron lánya tiszteletére.

A nyelv létrehozása a követelmények meghatározásával és a specifikációk kidolgozásával kezdődött. Négy független csoport dolgozott a projekten, de mindannyian Pascalt vettek alapul. Az 1980-as évek elején kifejlesztették az első ipari fordítóprogramot az Ada nyelvhez.

C fejlesztés

Az univerzális programozási nyelvet a 70-es évek közepén fejlesztette ki Denis Ritchie és Ken Thompson. Ez a nyelv népszerű rendszerprogramozási nyelvvé vált, és egy időben a kernel írásához használták operációs rendszer UNIX.

Megkezdődött a C nyelvi szabvány kidolgozása munkacsoport ANSI Szabványügyi Intézet 1982-ben. A C nyelv nemzetközi szabványát 1990-ben fogadták el. A C nyelv képezte a programozási nyelvek és a Java fejlesztésének alapját.

A C nyelv lehetővé tette, hogy ténylegesen megszabaduljunk az Assemblertől az operációs rendszerek létrehozásakor. Például a Unix operációs rendszer szinte teljes szövege C-ben van írva, így nem függ egy adott számítógéptől.

A C fő előnye az egyszerűsége és az áltudományos megoldások hiánya. A paraméterek függvénynek való átadásának mechanizmusa (csak érték szerint) egyszerűen és világosan le van írva. A C programot létrehozó programozó mindig tisztában van azzal, hogy a program hogyan fog végrehajtódni.

A mutató fogalma, a statikus és az automatikus (verem) változók a lehető legpontosabban tükrözik bármely nyelv szerkezetét. modern számítógép, így a C programok hatékonyak és könnyen hibakereshetők.

Jelenleg a programok túlnyomó többsége C és C++ nyelven íródott. Bármely operációs rendszer interfésze (az ún. API - Application Program Interface), azaz. az alkalmazásfejlesztőknek szánt rendszerhívások általában a C nyelv függvényei.

Az algoritmikus nyelvekkel párhuzamosan fejlődtek az üzleti információk feldolgozására szolgáló nyelvek, valamint a mesterséges intelligencia nyelvei. Az első a COBOL (COMMon Business Oriented Language), a második a LISP (LIST Processing) és a Prolog nyelvet tartalmazza.

A LISP nyelv, amelyet a 60-as években fejlesztettek ki J. McCarthy vezetésével, volt az első olyan funkcionális listafeldolgozó nyelv, amelyet megtaláltak. széles körű alkalmazás játékelméletben.

90-es évek

A 90-es években az internet elterjedésével bővültek az elosztott adatfeldolgozás lehetőségei, ami a programozási nyelvek fejlődésére is hatással volt. Megjelentek a szerveralkalmazások létrehozására összpontosító nyelvek, mint például a Perl, a Document Description Languages ​​és az XML.

A hagyományos C++ és Pascal programozási nyelvek is átalakultak: a programozási nyelv nemcsak magának a nyelvnek a funkcionalitását kezdte jelenteni, hanem a programozási környezet által biztosított osztálykönyvtárakat is.

A hangsúlyt maguknak a programozási nyelveknek a specifikációjáról az elosztott alkalmazások interakciós mechanizmusainak szabványosítására helyezték át. Új technológiák jelentek meg - COM és CORBA, amelyek meghatározzák az elosztott objektumok interakcióját.

A programozási nyelvek alkalmazási területei

Jelenleg a programozási nyelveket az emberi tevékenység legkülönfélébb területein használják, mint például:

  • tudományos számítástechnika (C++, FORTRAN, Java nyelvek);
  • rendszerprogramozás (C++, Java nyelvek);
  • információfeldolgozás (C++, COBOL, Java nyelvek);
  • mesterséges intelligencia(LISP, Prolog);
  • kiadói tevékenység (Postscript, TeX);
  • távoli információfeldolgozás (Perl, PHP, Java, C++);
  • dokumentumok leírása (HTML, XML).

A programozási nyelvek története alapján elmondható, hogy az idő múlásával egyes nyelvek fejlődtek, új funkciókra tettek szert és továbbra is keresettek, míg mások elvesztették relevanciájukat, és ma legjobb esetben is csak elméleti érdeklődésre tartanak számot.

Kasper Beyer "A programozási nyelvek rövid, teljesen pontos története".

1800

Joseph Marie Jacquard megtanít egy szövőszéket lyukkártyák olvasására, és ezzel megalkotja az első többszálas adatfeldolgozó eszközt. Találmányát ellenségesen fogadták a selyemszövők, akik előre látták a Skynet születését.

1842

Ada Lovelace unatkozott, miközben nemes törekvéseit folytatta. Belerajzolt jegyzetfüzet ami később elsőként publikált néven vált ismertté számítógépes program. Az egyetlen kellemetlenség az volt, hogy a számítógépet még nem találták fel.

1936

Alan Turing mindent kitalál, de ez nem igazolja őt a brit bíróság szemében, amely kémiai kasztrálásra ítéli.

A királynő később megkegyelmezett neki, de sajnos addigra már régen meghalt.

1957

John Backus létrehozza a FORTRAN-t, az első nyelvet, amelyet valódi programozók használnak.

1959

Grace Hopper feltalálja az első ipari-orientált programozási nyelvet, és „közös üzleti orientált nyelvnek” vagy röviden COBOL-nak nevezi.

1964

John George Kemeny és Thomas Kurtz úgy döntött, hogy a programozás túl nehéz, és vissza kell térniük az alapokhoz. A programozási nyelvüket BASIC-nek hívják.

1970

Niklaus Wirth kifejleszti Pascalt. Ez az egyik a több nyelv közül, amelyeken részt vett az alkotásban e Wirth: Szeretett nyelveket alkotni.

Megfogalmazta Wirth törvényét is, értelmetlenné téve Moore törvényét, mivel a fejlesztők ezt tennékÉs olyan felfújt programokat készíteni, hogy még a nagyszámítógépek sem tudnak lépést tartani velük. Ezt később az Electron.js feltalálása is bebizonyította.

1972

Dennis Ritchie megunta a Bell Labs-nál végzett munkáját, és úgy döntött, hogy létrehozza a C-t a göndör fogszabályozóval, és a projekt óriási sikert aratott.Ezt követően szegmentációs hibákat és egyéb fejlesztőbarát funkciókat adott hozzá a teljesítmény javítása érdekében.

Mivel még volt hátra pár órája, a Bell Labs-beli haverjaival úgy döntöttek, hogy elkészítenek egy mintaprogramot a C nyelv bemutatására, így létrehoztak egy Unix nevű operációs rendszert.

1980

Alan Curtis Kaye feltalálja az objektumorientált programozást, és Smalltalk-nak nevezi. A Smalltalk-ban minden objektum, még az objektum is objektum.

1987

Larry Wall a vallási területen szerzett tapasztalatával prédikátor lesz, és az övé e th doktrína teszi Perlt.

1983

Jean David Ishbia észrevette, hogy Ada Lovelace programja soha nem indult el, és úgy döntött, létrehoz egy nyelvet, és az ő (Ada) után nevezi el. De a nyelv sem indul el.

1986

Brad Cox és Tom Love úgy döntött, hogy a Smalltalk alapján elkészítik a C olvashatatlan változatát. Objective-C-nek hívták, de senki sem érti a szintaxisát.

1983

Björn Stroustrup visszamegy a jövőbe, és észreveszi, hogy a C nyelv megköveteli túl kevés ideje az összeállításnak. Minden eszébe jutó funkciót hozzáad a nyelvhez, és C++-nak nevezi.

A programozók szerte a világon egyetértenek ezzel, remek ürügyet adva nekik a macskavideók nézésére és az xkcd olvasására munka közben.

1991

Guido van Rossumot nem szeretik kapcsos zárójel hát kitalálja. A nyelv szintaxisának kiválasztásakor a szerzőt Monty Python és repülő cirkusza ihlette.

1993

Robert Ierusalimski és barátai úgy döntöttek, hogy szükségük van egy helyi, brazil szkriptnyelvre. BAN BEN Hiba történt a lokalizáció során, ami miatt az indexek 0 helyett 1-től kezdték a számolást. A nyelvet Luának is hívták.

1994

Rasmus Lerdorf sablonmotort hoz létre saját CGI kezdőlapjának szkriptjeihez, és közzéteszi annak dot fájljait az interneten.

A világ úgy dönt, hogy mindenhol felhasználja ezeket a pontfájlokat, és Rasmus őrjöngve néhány további adatbázis-összerendelést ad hozzájuk, és az eredményt RHP-nek nevezi.

1995

Yukihiro Matsumoto nem volt túl boldog, és észrevette, hogy a többi programozó is boldogtalan. Megteremti Rubyt, hogy boldoggá tegye őket. A Ruby létrehozása után „Matz” boldog, a Ruby közösség boldog, mindenki boldog.

1995

Brendan Eich munkaszünetet vesz ki, hogy kifejlessze azt a nyelvet, amely a világ minden webböngészőjét, és végül a Skynetet is irányítani fogja. Először a Netscape-hez ment, és azt mondta, hogy a nyelvet LiveScriptnek hívják, de a kód áttekintése során a Java népszerűvé vált, így eldőlt használjon kapcsos zárójelet, és nevezze át a nyelvet JavaScript-re.

Kiderült, hogy a Java egy védjegy, ami problémákhoz vezethet, ezért a JavaScriptet később átnevezték -re, de még mindig a régi nevén hívják.

1996

James Gosling feltalálja a Java-t, az első igazán bőbeszédű objektum-orientált programozási nyelvet, ahol a tervezési minták elsőbbséget élveznek a pragmatizmussal szemben.

2001

Anders Hejlsberg újra feltalálja a Java-t, és a nyelvet C#-nak nevezi, mert a C nyelven való programozás menőbbnek tűnik, mint a Java nyelvű programozás. Egy új verzió Mindenki szereti a Java-t, mert teljesen más, mint a Java.

2005

David Heinemeier Hansson létrehoz egy webes keretrendszert, amelyet később Ruby on Rails néven hívtak. Az emberek elfelejtik, hogy ez két különböző dolog.

2006

John Resig ír egy JavaScript segédkönyvtárat. Mindenki azt hiszi, hogy ez egy nyelv, és karriert csinál a jQuery kód bemásolásával az internetről.

2009

Ken Thompson és Rob Pike elhatározzák, hogy létrehoznak egy C-hez hasonló, de „áru” nyelvet nagy mennyiség a biztonságot garantáló eszközök és a Gopherekkel (Gopher egy rágcsáló, a Micimackóról szóló történetek szereplője – kb. fordítás) kabalaként.

Ezt a nyelvet Go-nak hívják, úgy döntenek, hogy nyílt forráskóddal használják, és márkás térdvédőket és Gopher sisakokat árulnak.

2010

Graydon Hoare is szeretne egy C-hez hasonló nyelvet létrehozni. Rozsdának nevezi. Mindenki azt követeli, hogy minden szoftverét azonnal Rust nyelven írják át. Graydon valami fényesebbet akar, és elkezd dolgozni a Swift for Apple-n.

2012

Anders Hejlsberg C#-t szeretne írni a böngészőkben. Létrehozza a TypeScriptet, ami lényegében JavaScript több Java-val.

2013

Jeremy Ashkenas olyan boldog akar lenni, mint a Ruby fejlesztői, ezért létrehozza a CoffeeScriptet, amely JavaScriptre fordítódik, de inkább Rubyra hasonlít. Jeremy soha nem lett olyan igazán boldog, mint Matz és a Ruby fejlesztői.

2014

Chris Latner létrehozza a Swiftet, akinek nem az a fő célja, hogy az Objective-C legyen. Végső soron ez a nyelv a Java-hoz hasonlít.

>> Cikkek

Hogyan jelentek meg a programozási nyelvek?

A programozási nyelveket több évtizeden keresztül hozták létre, és ez a munka hosszú, összetett és fárasztó volt. Lényegében a gépi nyelv logikusan elrendezett nullák és egyesek lánca, amelyek sorrendjének megsértése programleálláshoz és számítógép hibás működéséhez vezet, és a parancsok írásának új módjait létrehozó programozókkal szemben támasztott követelmények a parancsok fejlesztésétől függtek. gépek.

A programozási nyelvek története: A kezdet

A 40-es évek elejét a programok első nyelvének, az assemblernek a megjelenése jellemezte, amely rövid szavakat vagy azok rövidítéseit tartalmazta a parancsban. A gyülekezést nyelvnek tekintik alacsony szint programozás, ezért nevezik géporientált nyelvnek. Az ezen a nyelven írt programokat azonban hatékonyságuk és teljesítményük jellemzi.

Magas szintű nyelvek: algoritmikus nyelvek

Technológiák fejlesztése és új típusok bevezetése digitális eszközök arra kényszerítette a programozókat, hogy feltaláljanak egy magasabb szintű nyelvet, amely az algoritmusokra összpontosít. Így jelentek meg további fordító programok, amelyek elindították az algoritmust. Két ismert fordítási módszer létezik:

- Összeállítás vagy fordítás, amikor az utasítások a teljes programcsomag lefordítása után lépnek életbe;

- Értelmezés vagy tolmácsolás, amelyben a gépi nyelv végrehajtása és fordítása szinkron módon történik.

Az ilyen programok jellemzői: könnyű létrehozás (kódírás), beállítási lehetőség használat közben, könnyű olvasás.

1954-es év: strukturált programozás

A világ tudomást szerzett egy nagyon magas szintű programozási nyelv első fordítójáról. Fortranról beszélünk, az angol FORmula TRANslator rövidítésből. A nyelv fejlesztése leegyszerűsödött, de a nagy programok összeállításánál a nyelv gyakorlatilag olvashatatlanná vált, bár a Fortran számos változata megjelent.

A programozási nyelvek fejlődésének csúcsa pontosan az 50-60-as években következett be, majd számos lehetőséget hoztak létre:

- Algol(1958), izolált blokkok alapján készült;

- Cobol(1959) - üzleti és menedzsment nyelv, C+ alapú;

- Alapvető(1965), amelyet a programozók a mai napig ismernek.

1970-ben létrehoztak egy programozási nyelvet, amelyet B. Pascal tudósról neveztek el - Pascal. Az ezen a nyelven készült programok könnyen olvashatóak voltak, és nem okozott nehézséget a tanulás. Egyszerű, jó strukturált nyelv még mindig népszerű a kezdő programozók körében.

Valamivel később, 1972-ben kifejlesztettek egy második programozási nyelvet - a C-t, amely magában foglalta a korábban létrehozott nyelvek és innovációk eredményeit, és talán a legnépszerűbb lett a felhasználók és a programkészítők körében. Egyszerű, jól strukturált, könnyen megtanulható, a C a többi nyelv kedvencévé válik.

Objektum-orientált programozás (OOP): 1970

A feldolgozáshoz formálisan nem kapcsolódó funkciók procedurális programozásának ideológiája arra kényszerítette a fejlesztőket, hogy leüljenek egy új nyelvalkotási koncepció megalkotására. Az OOP koncepciók alapjai a következők:

Egy még nem létező objektum modellje;

Osztálypéldány;

Absztrakció, jellemzők megadása egy tárgynak;

Beágyazás, amikor a tulajdonságokat és metódusokat az adatok elrejtésének céljával kombinálják;

Öröklés;

Polimorfizmus.

Az első nyelv a Simula volt, kicsit később találták fel a Smalltalkot. Jelenleg az ilyen típusú programnyelvet a modern programok támogatják: Object Pascal (Delphi), C++, C#, Java.

A programozási nyelvek fejlesztési sorrendje az új innovációk bevezetésétől függ, így az Internet megjelenése után egy nyelv szükségessé vált az erőforrásokhoz és webhelyekhez való hozzáféréshez. Technológia World Wide Web (WWW)új nyelveket szült, amelyeket ma is aktívan használnak: Java, Perl, SQL, HTML, PHP, JavaScript.

A számítógépek még mindig rosszul értik azokat a természetes nyelveket, amelyeket az emberek a kommunikációhoz használnak, vagy legalábbis még nem.

Az emberek viszont nem értik jól a gépi nyelveket. Ezért olyan programozási nyelveket hoztak létre, amelyek lefedik ezt a rést a megértésben, az ember és a számítógép közötti gondolkodási modellben.

A programozási nyelvek lehetnek:

  • egyszerű,
  • összetett és
  • érthetetlen (például grafikus).

A programozási nyelvek története

Napjainkban több száz programozási nyelvet használnak, de sokkal többet már nem használnak. Idővel új programozási nyelveket fejlesztettek ki az új feladatokhoz.

Nulla generáció

  • (elektro)
  • saját készülékük szerkezete szerint programozzák
  • magasan specializálódott,
  • A programozási lehetőségek korlátozottak.

Jacquard szövőszék

Ilyen gépekre példa a programozható eszközzel ellátott jacquard szövőgép. 1804-ben készítette a francia Joseph Marie Jacquard. Egyébként az ő tiszteletére a mintás, dekoratív szövetet jacquardnak vagy jacquardnak hívják.

A gép segítségével egyszerűen és tömegesen lehetett hímzést készíteni szövetre lyukkártyákkal, az alábbi ábrán látható módon:

Rizs. 1. Lyukkártyák Jacquard szövőszékhez

A lyukkártyákat egy műveletsorral programozták a gépek számára, hogy reprodukálják a mintát a szöveten.

Babbage gépe

Internet és web

Megjelentek a speciális nyelvek:

  • JavaScript.

Sok webhely PHP és JavaScript használatával készült.

Néhány már létező nyelv az Internet és a Web megjelenésével új résekre bukkant, és web-orientálttá vált:

  • Rubin,
  • Pynton,
  • Jáva.

A 2000-es évekre a régi programozási nyelvek fokozatosan kihalnak, újak jelennek meg, de nincs általánosan elfogadott koncepció, hogy mi történik ezekkel a dolgokkal.

Minden programozási nyelv mesterséges nyelv, amelynek megvan a maga életciklusa. Ugyanígy az operációs rendszerek Windows család saját életciklusuk is van: .

Egy programozási nyelv életciklusa:

  • Teremtés,
  • korai elfogadás (a nyelv kezdeti használata),
  • (ipari) siker,
  • elhalványul, más nyelvekre cserélődik.

BAN BEN modern világ fő rész szoftver(szoftver) 10-15 nyelven íródott, bár az általunk ismert teljes idő alatt több mint száz programozási nyelvet hoztak létre. 300 vagy 400 nyelv van hivatalosan bejegyezve.

Mi az a programozási nyelv

A nyelv az

  • szintaxis (programírás szabályai),
  • szemantika (az írás szabályaiban szereplő és a nyelvbe beépített elemek viselkedése),
  • futásidejű (futási környezet).

A szintaxis meghatározza a programok szöveges ábrázolásának formáját, vagyis azt, hogy hogyan kell őket írni, milyen szavak szerepelnek a nyelvben, hogyan kell vesszőt, szóközt stb.

Szintaxis a Lisp használatával példaként

Az egyik legtöbb egyszerű nyelvek a formális nyelvtannal rendelkező programozás a LISP nevű listanyelvnek minősül.

Rizs. 10. LISP program

A LISP egy nagyon régi nyelv, amely listákat készít. Egy ilyen nyelv nyelvtana a listák nyelvtana, felülről lefelé olvasva.

  • A Lisp-ben vannak kifejezések: lehet egy atom vagy egy lista;
  • az atom egy szám vagy szimbólum,
  • szám – egy szám, azaz legalább egy plusz vagy mínusz számjeggyel,
  • szimbólum – ezek betűk, akárhányszor, akár többször is,
  • lista – lista, kifejezések zárójelben többször is.

A Lisp program listák listája. A Lispben nincsenek írásjelek, de vannak zárójelek. A Lispben lehetnek ilyen hosszú programok, ahol a végén van 2-3 lap, ami csak záró zárójelekből áll.

A legegyszerűbb Lisp-tolmács mindössze 19 sort foglal! Nincs más nyelven ez a luxus.

Szemantika

Ha a nyelvtan leírja az ábrázolás formáit: betűk, számok, zárójelek, akkor a szemantika leírja, hogyan működik a program, mit jelentenek ezek a betűk, számok, zárójelek, hogyan működnek, hogyan hatnak egymásra stb.

A szemantika ábrázolásának lehetőségei meglehetősen korlátozottak.

A szemantika lehet:

  • természetes, emberi nyelven írják le. Sok nyelv csak így írható le. Tulajdonképpen ez a fő eset, amikor egyszerűen van egy dokumentum, ahol le van írva oroszul vagy angolul, hogy ilyen és olyan dolog működik így és úgy, az egyik csapat ezt csinálja, a másik meg ilyeneket, stb. ;
  • formálisan megadva (szaknyelvekben például egyes számításoknál az elemek viselkedése formálisan is leírható);
  • az eredeti megvalósítás határozza meg (ritkán használják, de ez az „utolsó remény” egy leíráshoz, ha a szemantika túl bonyolult vagy nem túl fontos);
  • tesztek (esetek) halmaza írja le, nevezetesen, hogy ennek így kell működnie, és ennek így kell működnie.

A szemantika két részre oszlik:

  • statikus,
  • dinamikus.

Statikus szemantika

  • értelmet ad a lexikális szerkezeteknek;
  • meghatározza a változók és paraméterek elfogadható értékeit;
  • szintaktikai korlátozásokat ír le, például a szintaxis használatával nem lehet leírni, hogy nem lehet számokkal karakterláncokat hozzáadni.

Dinamikus vagy frontális futásidejű szemantika

  • meghatározza a programvégrehajtás általános jellegét;
  • leírja a beépített műveletek és a beépített könyvtárak működését. Ez a szemantika fő része, amely ahhoz szükséges, hogy megértsük, hogyan fog működni a program a megírása után;
  • meghatározza a tolmácsra vonatkozó követelményeket.

Adattípusok rendszere programozási nyelvekben

A szemantika fontos része a típusrendszer - szabályok és kifejezések halmaza a nyelv ideológiájában megírt módszerekhez, és hogyan hatnak egymásra.

Általában egy programozási nyelv adattípusokból álló rendszerrel rendelkezik - karakterláncok, számok, listák stb. Van például a Force nyelv, ahol minden adat csak , vagyis vannak olyan nyelvek, ahol az adattípusok egyáltalán nincsenek beépítve.

Ha létezik típusrendszer, akkor a programozási nyelvek két független osztályra oszthatók, amelyeket alább adunk meg.

Adattípus rendszer:

  • gépelt vagy gépeletlen nyelv
  • statikus vagy dinamikus gépelés
  • erős vagy gyenge gépelés

Ha a gépelés statikus, akkor a programba írt összes kifejezés típusa ismert a végrehajtás pillanatáig, azaz a függvények, osztályok, változók leírásáig, akkor azonnal feltételeket állítunk be vagy kifejezetten megadunk, hogy a egy ilyen konstrukció típusa a kezdetektől ismert.

Ha a gépelés dinamikus, akkor éppen ellenkezőleg, a kontextusnyelv objektumainak típusa a végrehajtás pillanatáig ismeretlen, vagyis egy függvény vagy bármi típusa a legvégéig ismeretlen lesz.

Az erős tipizálás azt jelenti, hogy ha egy entitásnak van típusa és az ismert, akkor ez a típus lecserélhető, de maga az objektum rögzített típussal rendelkezik, és nem változik.

Gyenge gépelés esetén az objektum típusa eltérő lehet a kontextustól és attól függően, hogy mit csinál vele.

Követni kell a nyelv típusrendszerét. A program elején csak egy, nem túl észrevehető szimbólum hibásan megadott típusa miatt az egész kifejezés típusa megváltozik, és emiatt nagyon furcsa hibák adódhatnak.

Következő fontos jellemzője nyelv -

Programozási nyelv paradigma

  • görögből - sablon, példa, minta;
  • ez egy olyan ötlet- és fogalomrendszer, amely meghatározza a programok írásának stílusát ezen a nyelven - ahogyan a nyelv magában foglalja a programírást (wiki);
  • a nyelv egy vagy több paradigmát „kedvez” (multi-paradigma).

Fő paradigmák

  • kötelező: a program olyan szekvenciális utasítások halmaza, amelyek megváltoztatják a számítógép belső állapotát, az adatokat stb. Vagyis a program egy utasítás;
  • funkcionális: a program matematikai függvények halmaza. A program feladata a függvények értékének kiszámítása;
  • objektum-orientált: a tárgyterület leírása objektumok segítségével tulajdonságokkal és módszerekkel. A program objektumok közötti interakció folyamata;
  • logikai: a program a tárgykörre vonatkozó állítások halmaza. A program feladata, hogy megállapítsa az e tárgykörre vonatkozó állítások igazságtartalmát.

Gyakran ugyanaz a gyakorlati probléma megoldható a fent felsorolt ​​paradigmák bármelyikével.

A nyelv másik fontos része, amelyet figyelembe kell venni egy nyelv használatakor, a Runtime – a nyelv futásának módja.

Runtime - program végrehajtása

A program többféleképpen is végrehajtható:

  1. A program végrehajtásának legegyszerűbb és legnaivabb módja az értelmezés – a forráskód beolvasása az indításkor. Így működnek a könnyű, szkriptnyelvek. Maga a programozó is dolgozik: amikor megírt egy programot, a saját szemével nézi a saját programját, és kitalálja, hogyan fog működni a programja, mit kell tennie;
  2. A programok futtatásának elterjedt módja az, hogy gépi kódba fordítják őket - külön lépés indulás előtt. Van egy külön eszköz - egy fordító, ahol beolvassák a programforrásokat, valamit csinálnak velük, átalakítva azokat gépi kódokká, amelyek a jelenlegi rendszer számára érthetőek. Ezután ezt a kódot közvetlenül a hardver hajtja végre;
  3. A hibrid módszer a bájtok fordítása és végrehajtása egy virtuális gépen. A fordító beolvassa a forráskódot, majd a virtuális gépen végrehajtott bájtkódot állít elő.

A felsorolt ​​három módszer különbözik, és különböző célokra használják őket. Ezek a technikák kombinálhatók – a tolmács menet közben is le tudja fordítani a program egyes részeit, hogy gyorsabban működjön. A dinamikusan generált kód fordítás nélkül is értelmezhető.

A nyelvek képviselői

C nyelv

– az egyik legnépszerűbb, a fizikailag ráírt kódot tekintve az egyik legfontosabb, gyakorlatilag a „mindenünk”.

1972-ben hozták létre, az alkotók Dennis Ritchie és munkatársai. D. Ritchie is alkotott Linux rendszerés még sok más hasznos dolog.

  • parancsoló,
  • összeállított,
  • kézi memóriakezelés (egyes nyelvbe épített műveletek segítségével memóriaelemeket kell hozzárendelni a változókhoz, majd fel kell szabadítani, amikor már nincs rájuk szükség).

A C egyébként ma is aktuális, a következőkre használják:

  • rendszerprogramozás (például a Linux kernel C-ben van írva),
  • számtörő (az ún. számtörők, vagyis nagy számításokhoz, ahol a sebesség fontos),
  • mikrokontrollerek és beágyazott rendszerek programozása.

A C egy alacsony szintű nyelv, mondhatjuk, hogy emberi arcú Assembler, mert az ember szinte bármilyen C konstrukciót képes manuálisan Assemblerre konvertálni, és az eredmény teljesen érthető műveletek lesznek.

A C programok nagyon kompaktak. Nem sokkal nagyobbak, mintha hasonló programokat írnának az Assembly-ben. Ráadásul a C-ben sokkal gyorsabb a fejlesztés, mint az Assembly-ben.

Ezért ma már a C-t olyan feladatokra használják, ahol teljesítmény szükséges, a memóriakezelés nagyon fontos és nagyon fontos magának a programnak kompakt kötete van. Ha van egy kis mikrokontrollered, amely valamilyen eszközbe van beépítve, akkor a program valószínűleg Assembly vagy C nyelven lesz megírva.

Rizs. 11. Példa egy egyszerű C programra.

Jáva

  • 1995-ben jött létre,
  • alkotók: James Gosling és a Sun Microsystems (Gosling ennél a cégnél dolgozott).
  • Objektumorientált, kötelező (C kötelező, de NEM objektumorientált),
  • szigorúan és statikusan gépelve,
  • byte-on fordítva Virtuális gép,
  • nincs memória hozzáférés, automatikus szemétszedés (utóbbi jól működik, ha van egyharmad vagy negyed szabad memória).

A 90-es években a JAVA nagy népszerűségre tett szert többplatformos nyelvként. Miután írtunk egy virtuális gépet egy bizonyos platformra, mondjuk Windowsra vagy Linuxra vagy Macre, újrafordítás nélkül futtathatunk rajta bármilyen JAVA programot. Ezért a nyelv népszerű volt a webes korszakban, amikor az volt különböző platformokon(különböző Windows verziók, különböző Mac-ek). A JAVA programok gyorsan és elég jól működtek különböző platformokon.

A következőkre használják:

  • alkalmazásprogramozás, beleértve a webes programozást,
  • beágyazott rendszerek (ha a C-t a mikrokontrollerekhez használjuk, akkor a JAVA-t mobiltelefonok, terminálok stb.),
  • nagy terhelésű, nagy számú felhasználóval rendelkező rendszerek (banki programok, légiforgalmi irányító rendszerek stb.).

Meg kell különböztetni a specifikációkat Java nyelvés különféle JVM implementációk:

  • Sun JDK (a Suntól, jelenleg Oracle),
  • IBM JDK (pénzért eladó),
  • OpenJDK (teljesen ingyenes)
  • stb.

Rizs. 12. Példa egy egyszerű programra JAVA-ban.

ábrán látható. 12, sok levelet kell írnia a kitöltéshez egyszerű lépéseket. A Java-t gyakran új Cobol-nak nevezik, mert ugyanazokat a negatív tulajdonságokat tartalmazza, amelyek egykor a Cobol-t rossz nyelvvé tették.

Ennek ellenére a JAVA nagyon népszerű, különösen az operációs rendszer kliens része van beleírva.

Selypít

  • Tényleg befejezi Lis t P forgácsoló (LisP);
  • 1958-ban jött létre;
  • alkotók: John McCarthy;
  • tiszta funkcionális nyelv, a meglehetősen furcsa szintaxis ellenére;
  • erősen és dinamikusan gépelt;
  • általánosan értelmezhető;
  • nincs memória hozzáférés, automatikus szemétgyűjtés, ami az interpreterre esik és nem a virtuális gépre.

A következőkre használják:

  • Tudományos programozás és kutatás;
  • mesterséges intelligencia – A Lisp-et a legelején az intelligenciával való kereséssel hozták létre. Az 1950-es évek végén és a 60-as évek elején tudományos körökben erős volt az az érzés, hogy a mesterséges intelligencia létrehozása előtt áll. Akkor azt hitték Főbb jellemzők a mesterséges intelligencia képes lesz természetes nyelvvel, szöveggel operálni, olvasni, beszélni és intelligens dolgokat csinálni. A Lisp-et a szöveg szemantikai adatainak feldolgozására hozták létre, ez lehetővé teszi az ilyen dolgok jó elvégzését;
  • bármit, de általában nem használják túl hatékonyan.

Az 1958-ban kifejlesztett Lisp nyelv számos változáson ment keresztül.

Számos megvalósítása és dialektusa van:

  • A CommonLisp (amelyet az 1970-es években hoztak létre) egy klasszikus megvalósítás, amelyet a főnek tekintenek;
  • A séma (séma) egy leegyszerűsített dialektus, amely kidob néhány dolgot a CommonLisp-ből, és megkönnyíti annak végrehajtását;
  • A Clojure nyelvileg a Lisp dialektusa, de JAVA gépen fut, vagyis bájtkódba fordítják és úgy futják le, mintha egy JAVA program lenne.

Rizs. 13. LISP program: buborék rendezés

Piton

  • Az 1970-es évek Monty Pynton's Flying Circus című brit műsoráról kapta a nevét (a viccek régiek, de viccesek)
  • 1991-ben jött létre
  • alkotó – a holland Guido van Rossum
  • többparadigmás nyelv, objektumorientált, imperatív, funkcionális
  • erősen és dinamikusan gépelt
  • értelmezett, virtuális géppel bájton fordítva (megvalósítástól függően)

A következőkre használják:

  • script programozás
  • webes programozás
  • tudományos programozás (nagy, hatékony csomagok állnak rendelkezésre a modellezéssel, valószínűségszámítással, statisztikákkal és más területeken végzett munkához, amelyek egyesítik a más területeken szerzett tapasztalatokat)

A Python egy nyelvi specifikáció. Számos alapvető megvalósítás létezik:

  • CPython - fő (referencia)
  • Jython – a JVM tetején
  • PyPy – Python a Pythonban (a „Python in Python” gyorsabban és jobban működik, mint a CPython és a Jython)

Rizs. 14. Python program: Bubble Sort

A Pythonnak van egy fontos tulajdonsága - a zárójelek (kerek, göndör) helyett a szóközökkel történő behúzásokat használják a kódblokkok és szerkezeti elemek kiemelésére, ami meglehetősen szokatlan minden nyelven. A Pythonon kívül szinte senki nem rendelkezik ezzel a funkcióval.

A feladat nyelvének kiválasztása

Hogyan válasszunk nyelvet egy feladathoz, ha tudod, mit kell tenned, de nem tudod, hogy mit?

Fontos tanács: azt használd, amit tudsz programozni. Ez sokkal jobb, mint olyasvalamit használni, amit NEM tud programozni.

Ökoszisztéma

A használni kívánt nyelv nem lehet „csupasz” nyelv, hanem olyan ökoszisztémával kell rendelkeznie, amely magában foglalja:

  • fejlesztői eszközök (felhasználóbarát IDE)
  • kész könyvtárak és keretrendszerek
  • tesztelőeszközök tesztesetek futtatásához: teszt keretrendszerek és eszközök
  • csomagolási és telepítési rendszereket, hogy az írott kód becsomagolható és valahol elhelyezhető legyen, hogy mások is könnyen tudják használni. A C nyelv nem rendelkezik ezzel a funkcióval, de a Ruby és a Python nyelvek igen.
  • közösség. Nincs szükség halott nyelvek használatára, bármilyen menők is. Ha nincs kitől megkérdezned, teljes zsákutcában maradsz. Úgy tartják, hogy egyes közösségek barátságosabbak, mások kevésbé. Például a Ruby közösség nagyszerű, de a Java közösség szörnyű – ott nem is kell kérdezni semmit.

Népszerűség

Nehéz olyan embert találni egy csapatban, aki egy ritkán használt nyelven ír kódot, például Eiffel. A mega népszerű JAVA nyelv megüresedett helyére viszont nagyon sokan fognak özönleni, amiben alacsony a bejutási küszöb, de nem lesz könnyű olyanokat találni, akik igazán jól írják.

Minél népszerűbb egy nyelv, annál több könyvtára, közössége, keretrendszere és egyéb dologja van, amelyek felülről nőnek maguktól.

Tanulási arány

Szinte senki sem ismeri teljesen a nyelvet. Munka közben egyre jobban meg kell tanulnod a nyelvet. Egyes nyelveket könnyű megtanulni, míg másokat nagyon nehéz.

A JAVA egy könnyen elsajátítható, képességeiben egyszerű nyelv, és akkor minden nem a nyelven, hanem az eszközökön keresztül épül fel.

Lehetetlen teljesen megtanulni a C++-t, mert nagyon bonyolult dolgok vannak a kódgenerálással.

Nyelvek szűkössége

Egyes nyelvek jobban megfelelnek bizonyos résproblémák megoldására.

1. példa: egy webalkalmazás, amely

  • interakcióba lép az adatbázissal
  • belső szolgáltatás a cégnél
  • Gyors fejlesztés kell, mert a főnök nagyon kéri.

Egy ilyen feladatra valószínűleg a Python vagy a Ruby lesz megfelelő. Ezt JAVA-ban nem kell megtenni

2. példa: mobilszolgáltatói számlázási rendszer

  • több ezer művelet másodpercenként, tömeg különféle kifizetésekés fordítások
  • nagy megbízhatóság és hibatűrés
  • rugalmasság a konfigurációban, probléma diagnosztikában

Ebben az esetben a Java, C++, Erlang a választásunk - gazdag nyelvek gazdag eszközökkel.

3. példa: fedélzeti számítógép kódja műholdhoz

  • korlátozott erőforrások (csak megabájt memória és nagyon alacsony órajel)
  • kemény valós idő hogy a műhold ne veszítse el orientációját, ne törjön le vagy robbanjon fel
  • szigorúan ismert feladatok, nincs rugalmasság és nincsenek beállítások
  • nagyszámú számítás

A mi választásunk a C és C-szerű nyelvek (és még az assembler is), mert nagyon kevés az erőforrás, és ezeket a követelményeket teljesíteni kell.

A cikk a videó alapján készült:

Hogyan válasszuk ki a megfelelő programozási nyelvet - Ivan Kalinin

A videót 2014 decemberében forgatták, azonban minden információ releváns, és nincs elévülése. A mai valóság szemszögéből számos anyag érdekes, például, hogy a tudósok az 1950-es évek végén – az 1960-as évek elején úgy gondolták, hogy a mesterséges intelligencia már a küszöbön van, és segítségével hamarosan számítógépen is lehet dolgozni. természetes, hétköznapi, emberi nyelv.



Kapcsolódó kiadványok