nisfarm.ru

Klasifikace programovacích jazyků podle úrovní

Programovací jazyky jsou systémy symbolů a pravidel jejich kombinace určené pro interakci člověka se složitými stroji. Existují stovky takových organizovaných systémů, které plní různé funkce. Chcete-li navigovat v této rozmanitosti, odborníci vytvářejí obecné klasifikace programovacích jazyků na základě jedné nebo jiné charakteristické rysy.

Interakce člověka a stroje

Je důležité pochopit, jak lidé komunikují s inteligentními mechanismy předtím, než přistoupí k klasifikaci programovacích jazyků.

Jednoho dne si člověk myslel, že stroj může pro něj dělat fyzickou práci. Tak se objevil parní stroj. Poté se podnikající osoba rozhodla přesunout také k duševnímu dílu. Takže tam byl počítač.

Chcete-li dosáhnout nějakého výsledku, musíte pochopit, jak to udělat. Při programování můžete rozlišit několik fází řešení každého problému:

  1. Formalizovaný logický popis samotného úkolu.
  2. Konstrukce algoritmu popisující všechny kroky k dosažení cíle, počínaje zpracováváním vstupních dat a končící získáním výsledku.
  3. Kódování - kompilace programu v libovolném z programovacích jazyků, který pak může být přeložen do počítačového jazyka.
  4. Překlad je přímý překlad.
  5. Sestavování běžícího programu (spustitelného modulu) ze všech komponent.

Jedná se o hierarchickou strukturu, ve které jsou vyšší úrovně založeny na nižších úrovních. Bez jasného úkolu a kompetentního algoritmu není možné vytvořit program kvality.

Rozmanitost programovacích jazyků

Struktura programovacích jazyků

Uspořádání všech systémů interakce je podobné a v mnoha ohledech určuje klasifikaci programovacích jazyků.

Hlavní předměty programovacího jazyka jsou konstantní a připomínají součásti lidského jazykového systému:

  • Syntaxe, která definuje formální pravidla psaní programu, platné typy a případ znaků;
  • lexikon, který zahrnuje celou slovní zásobu jazyka: jména proměnných a funkcí, konstanty, řetězce, operátory;
  • gramatika, ukazující, jak správně kombinovat jednotky jazyka pro tvorbu slovních kombinací a vět.

Slovníček a gramatika společně definují sémantiku jazyka. Na této úrovni získávají specifické sekvence znaků zvláštní význam, srozumitelný člověku a počítači. Například slovo v mnoha programovacích systémech je považováno za začátek cyklické operace.

Samozřejmě, počítače nerozumí obyčejným slovům, samo o sobě kombinace latinských písmen pro ně nic neznamená. Stroje se zabývají strojový kód - nuly a ty, které popisují primitivní stavy přítomnosti nebo nepřítomnosti signálu. Proto programovací jazyky vytvářejí jasnou shodu určitých slov a sekvencí nativních instrukcí stroje.

Prvních primitivních řídicích systémů strojů - děrovaných karet - byly použity pro Jacquardovy stavy, které přenesly do hedvábí vzorek jakékoliv složitosti. Vlastní přehrávání klavíru bylo naprogramováno stejným způsobem.

Existují stovky programovacích systémů a každý rok jsou nové. Některé z nich jsou zásadně odlišné od sebe, jiné jsou velmi podobné a mají jen malé rysy. Každý je určen k řešení jeho úkolů, širokých nebo vysoce specializovaných.

Přehled klasifikací

Programovací jazyky lze seskupit podle desítek různých značek. Jsou zásadně důležité nebo mají praktický význam.




Existuje silná závislost klasifikace programovacích jazyků na historii vývoje. V průběhu let se technologie staly složitějšími a dramatickyji změnily, kompetence programátora se dostala do popředí, objevily se efektivní algoritmy, složité týmy a nové úrovně abstrakce.

Programovací jazyky

Hlavní klasifikace programovacích jazyků podle typů a mechanismu provozu jsou založeny na následujících parametrech:

  • Vlastnosti slovní zásoby a gramatiky ve spojení s úrovní abstrakce a míry pohodlí pro člověka.
  • Základní koncepce a metodika sestavování algoritmů.
  • Metoda reprezentace dat.
  • Organizace procesu interakce se strojem, mechanismus provádění programu.
  • Oblast života, ve které se jazyk používá.
  • Historická epocha, v níž byl vytvořen jazykový systém.

Není možné jasně klasifikovat jazyky a programovací systémy, ale je možné je rozdělit a systematizovat podle zásadně důležitých vlastností.

Pohodlí pro člověka

Instrukce napsané v jazyce stroje jsou pochopitelné pro počítač, ale pro člověka jsou extrémně nepohodlné. Jsou obtížné pochopit, je téměř nemožné rychle změnit nebo složit s nimi komplexní algoritmus. Aby se zvýšila efektivita, programátoři vzrostli na nové úrovně abstrakce a naučili stroj, aby přijal více human-pochopitelných instrukcí a samostatně je přeložil do strojového kódu. Zvažte klasifikaci a vlastnosti programovacích jazyků různých úrovní:

  • Kód stroje. Jedná se také o programovací jazyk, na kterém můžete s náležitou přípravou napsat návod.
  • Nízká úroveň. Opravdu nízká úroveň assembler jazyky, které používají nativní strojové instrukce kódované pomocí mnemonických kódů.
  • Středová úroveň. Programovací systémy této skupiny lze považovat za nízké a vysoké úrovně v závislosti na konkrétních představách o stupni abstrakce. To zahrnuje C a C ++.
  • Vysoká úroveň. Tyto jazyky umožňují vytvářet složité algoritmy, ale před provedením vyžadují další zpracování, takže generovaný kód je méně efektivní a pomalejší.
  • Vysoce vysoká úroveň. Tato malá skupina se vyznačuje vzhledem super výkonných týmů a operátorů. Zde je možné nosit Algol-68.

Funkcí jazyků nízké úrovně je jejich počítačová závislost. Jsou úzce svázáni se specifiky organizace určitého typu počítače, ale jako celek jsou navzájem podobné. Poskytují:

  • vysoká rychlost provádění a maximální kompaktnost vytvořených programů;
  • přímá interakce s hardwarovými prostředky;
  • plnou kontrolu nad pamětí.

Hlavní nevýhody jazyků nízké úrovně:

  • pro každý typ počítače je nutné použít určitý příkazový systém v závislosti na vlastnostech stroje;
  • složitosti a nízké rychlosti procesu programování;
  • vysoká pravděpodobnost chyb, které lze obtížně sledovat;
  • nedostatek mobility programů, neschopnost spouštět je na jiném počítači.

Programovací systémy na vysoké úrovni nejsou svázány s konkrétním systémem strojového příkazu a mohou být prováděny na jakémkoli počítači. Vzhledem k vysoké úrovni abstrakce si mohou při sestavování pokynů užívat různé koncepce a metodiky. Proto je klasifikace programovacích jazyků na vysoké úrovni velmi rozsáhlá a složitá.

Zpracování programu podle stroje

Chcete-li provést složitou instrukci, musí počítač nejprve snížit svou abstraktnost a přeložit ji do jazyka, který je pro sebe srozumitelný. Způsob, jakým se to dělá, se nazývá model výkonu. Existují dva hlavní modely a jeden hybrid:

  • Kompilace - jednorázový překlad celého programu do strojového kódu.
  • Výklad - po sobě jdoucí provedení každého výrazu.
  • Transkopace - překlad do jazyka nižší úrovně, například C nebo assembler, a jeho následná kompilace.

Chcete-li přeložit, potřebujete speciální program překladače nebo tlumočníka, bez něhož nemůžete pracovat s tímto jazykem.

Kompilace a interpretace

Tlumočník pracuje samostatně s každým řádkem programu, který jej analyzuje a okamžitě jej provádí. Její přítomnost je nutná od začátku až do konce programu.

Hlavní nedostatky interpretačního modelu jsou:

  • neustálé zjištění překladatele v paměti počítače;
  • opakované zpracování opakujících se příkazů.

Navzdory tomu jsou interpretované jazyky velmi vhodné pro cyklický vývoj a ladění, protože umožňují rychle provádět změny v programu.

Kompilátor pracuje pouze jednou, okamžitě konvertuje všechny instrukce na počítačový formulář - strojový kód nebo nějaký meziprostorový kód a pak opustí počítačovou paměť. Zde je výkon oddělený od procesu překladu, což je efektivnější model.

Hlavní nevýhody modelu kompilace jsou:

  • velké potíže.

Před překladem programu do strojově srozumitelného jazyka překládá překladač mnohokrát počáteční instrukci, analyzuje je a testuje.

Kompilace programu

Neexistuje jasné vymezení systémů, protože tradičně interpretované jazyky mohou být sestaveny a naopak.

Klasifikace programovacích jazyků na vysoké úrovni podle modelu výkonu:

  • Interpretován - Python, Haskell, PHP, jаvascript.
  • Kompilován přímo do kódu stroje: C, C ++, Fortran, ASM.
  • Kompilován do byteku: Python, Java.
  • Přepočítaný: Haskell, Fortran, C, C ++.

Zpracování dat

Každý programovací jazyk pracuje s informacemi, které je třeba nějakým způsobem manipulovat, zkontrolovat správnost a změnit. Data mohou být velmi různorodá - čísla, řádky nebo složité struktury. Samozřejmě, každý typ musí pracovat jinak, ale aby bylo možné přesně určit, jak je nejprve nutné pochopit, jaký druh dat se počítač jedná.

Na základě metody pro určení rozmanitosti dat je vytvořena klasifikace programovacích jazyků podle typu systému.

  • Nesprávné jazyky.
  • Typy jazyků různého stupně závažnosti.

Nemám tušení assembler jazyky, které jsou schopny přímo zpracovávat binární data. Typ dat nezáleží vůbec.

U psaných jazyků je důležité, s jakými daty pracují. Některé operace jsou definovány pouze pro čísla, například rozdělení, jiné jsou pouze pro řetězce. Některé systémy však umožňují programátorovi určité svobody. Například mohou samostatně definovat a "implicitně" převést jeden typ dat na jiný, založený na sémantiku příkazu. To je velmi výhodné, ale komplikuje ladění, protože to může vést k nenápadné chybě. Živým příkladem přísného psaní je jаvascript.

Přísně psané jazyky, například Java, nepovolují tuto svobodu a v případě potřeby vyžadují uvedení typů a jejich explicitní konverzi.

K dispozici je také klasifikace programovacích jazyků na vysoké úrovni v době kontroly datového typu:

  • statické jazyky jsou obvykle kompilovatelné. Kontrola typu nastane, když je program analyzován před přeložením do jazyka stroje.
  • Dynamické jazyky kontrolují datové typy během provádění.

Hlavní způsob interakce

Vysoce abstraktní jazyky lze rozdělit podle základní programovací paradigmatu. Existují desítky metodik pro programování, z nichž některé jsou velmi podobné, takže není možné vytvořit jasný systém rozdílů. Stručná klasifikace programovacích jazyků vypadá takto:

  • algoritmický, imperativní, procedurální. Požadovat explicitní sekvenční popis algoritmu pro řešení problému. Provozovatelé jsou současně kombinováni do procedurálních skupin, oddělených od samotných dat. Příklady procedurálních jazyků jsou Pascal, Basic;
  • logický, deklarantní. Maximální formalizovaný popisuje úkol sám a požadovaný výsledek. Řešení musí logicky sledovat tento popis;
  • objektově orientovaný, strukturovaný. Jsou založeny na konceptu objektu, který kombinuje data a metody jejich zpracování.

Objekty v programování

Jazyky poslední skupiny popisují všechny entity ve formě nezávislých objektů, které skrývají komplexní mechaniku. Základní pojmy OOP (objektově orientované programování) jsou:

  • zapouzdření - skrytí funkčního uvnitř objektu;
  • dědictví některých objektů metodami druhých;
  • polymorfismus - změna podstaty se zachováním vnějšího rozhraní.
Objektově orientované programování

Můžete také klasifikovat jazyky objektově orientovaného programování implementací základních pojmů tohoto přístupu - dědičnost, zapouzdření a polymorfismus. Kromě klasických mechanismů existují další, například prototyp, používaný v jazyce jаvascript.

Metodika OOP je považována za nejprogresivnější, efektivnější a v některých směrech módní. V řadě případů však mohou být pro řešení konkrétního problému účinnější jiné přístupy, například funkční.

Generace programovacích jazyků

Klasifikace programovacích jazyků od historie jejich vzhledu je považována za podmíněnou, protože nezohledňuje specifické rysy konkrétních systémů. Umožňuje však zjistit, jak se pojmy časem změnily a úkoly, kterým programátoři čelí, se staly složitějšími.

Při pokusech o propojení klasifikace a vývoje programovacích jazyků se rozlišovalo několik velkých skupin nazvaných generace:

  • První generace - jazyky strojů na nízké úrovni, spojené s implementací konkrétního počítače. "Programy" v těchto jazycích vypadaly jako řady přepínačů umístěných v požadované pozici nebo děrovací karty (děrované pásky). Takže všechny příkazy byly sekvence nula a ty - binární kód. Příklad: jazyk procesoru ARM.
  • V druhé generaci se jazyky staly pro člověka trochu srozumitelnější, ale nebyly schopné je oddělit od určitého aparátu. Toto je doba montážního jazyka s mnemonickými kódy a jednoznačnou montáží ve strojově čitelné podobě. Příklad: Macroassembler.
  • Jazyky třetí generace odstranily z programátoru péči o neprincipované detaily při sestavování instrukcí, jako je překlad programu do strojového kódu. Nyní se počítač naučil samostatně. Syntaxe a slovní zásoba se přiblížila člověku, čímž se zřetelněji objevila. V této generaci se narodily téměř všechny moderní jazyky s vysokou úrovní znalostí, a to bez ohledu na jejich paradigma: PHP, Fortran.
  • Ve čtvrté generaci se úroveň abstrakce zvýšila ještě víc, což prudce zúžilo rozsah použití. Tato skupina zahrnuje takové specifické jazyky jako FoxPro, Simulink, SQL. Objevily se vizuální programovací jazyky: CAD balíčky, systémy RAD.
  • Konečně, jazyky páté generace musely psát programy samy a dostaly pouze popis od programátora. Tato myšlenka nebyla plně implementována, protože pro sestavení efektivního algoritmu je někdy nedostatečná přímá počítačová logika a stále je vyžadována lidská intuice a důvtip. Příklady jazyků páté generace jsou MathCAD, Prolog a Merkur.
Generace programovacích jazyků

Ve skutečnosti generace jazyků přesně odpovídají fázím programování popsaným na začátku článku, které jsou uvedeny v obráceném pořadí. Zpočátku programátor provedl veškeré operace a stroj pracoval pouze se zadanou sekvencí akcí. Nyní je počítač schopen produkovat výsledek podle formalizovaného popisu problému.

Snadnost práce s programátorem je doprovázena zvýšením zatížení stroje, program je pomalejší a vyžaduje více zdrojů.

Navzdory skutečnosti, že technologický pokrok se pohybuje skoky, hranice prvních generací vůbec nezmizely. Používají se v oblastech vyžadujících maximální jednoduchost a účinnost.

Rozsah aplikace

Každý programovací jazyk je dobrý ve svém oboru, pro který byl vytvořen. Takže pro programování mikrokontrolérů se používají sestavovatelé a s Java není nic co dělat. Programování ovladačů na nízké úrovni je efektivní s funkcí C, což umožňuje přísné řízení zdrojů paměti. Pro webové programování stojí za výběr skriptovací jazyky PHP a jаvascript, jehož interpret je integrován do každého moderního prohlížeče. Důležité bankovní programy jsou napsány v Javě a poskytují kontrolu chyb. Letectví a kosmonautika - také v Javě nebo Pascalu, které dokonce sběr odpadků dává programátorovi kontrolu.

Všechny jazyky jsou dobré, stačí vybrat vhodný úkol.

Nejpopulárnější programovací jazyky

Význam klasifikace

Je obtížné rozdělit stovky stávajících systémů interakce člověk-počítač do několika odlišných skupin. Přesto přezkum klasifikace programovacích jazyků stručně sleduje historii jejich vývoje a hlubší odhalení myšlenek, které jsou v nich zakotveny.

Každý jazyk současně odkazuje na několik z uvedených skupin - může být výrazně napsán, kompilován a objektově orientován současně. Proto je nemožné zvážit rozmanitost programovacích systémů přes hranici jediné klasifikace.

Sdílet na sociálních sítích:

Podobné
© 2021 nisfarm.ru