Klasifikácia programovacích jazykov. Počítačové programovacie jazyky: typy, popis, aplikácia a recenzie Aké sú typy rozdielov v programovaní

Rýchla navigácia:
1.31 Zoznamy sú polia. Prvé stretnutie. 1.30 Funkcie, ktoré vracajú výsledok - návrat 1.29 Podprogramy: funkcie a procedúry v Pythone 1.28 Konverzia dátových typov - int () 1.27 Vstup dát z klávesnice - vstup () 1.26 Typy a veľkosti dát 1.25 Slučka s podmienkou - while. Fibonacciho čísla 1.24 Meranie dĺžky reťazca, zoznamy 1.23 Rezanie reťazcov - extrahovanie určitého počtu znakov z existujúceho textu 1.22 Reťazce a riadiace znaky 1.21 Systémové chyby pri ladení programu 1.20 Príkaz vetvy - if, komentáre 1.19 Tlač - print(), rýchle zadávanie údajov, zaokrúhľovanie, komentáre 1.18 Typy programovania. Časť 2. Objektovo orientované programovanie 1.17 Typy programovania. Časť 1. Štruktúrované programovanie. Cykly 1.16 Reprezentácia znakovej informácie - ASCII 1.15 Delenie binárnych čísel 1.14 Matematické operácie s binárnymi číslami 1.13 Ako sa ukladajú a zaznamenávajú informácie. Bity a bajty 1.12 Konverzia celých čísel z desiatkového do iného systému 1.11 Konverzia celých čísel z hexadecimálneho na desiatkové 1.10 Konverzia celého čísla binárne číslo na šestnástkovú sústavu 1.9 Prevod binárneho celého čísla na inú číselnú sústavu 1.8 Číselné sústavy 1.7 Booleovská algebra. Booleovské výrazy 1.6 Základné pojmy. 3. časť - Čísla, výrazy, operandy, znaky operácií 1.5 Základné pojmy. Časť 2 - Program, údaje 1.4 Základné pojmy. Časť 1 - Problém a algoritmus 1.3 Vývojové prostredie SI 1.2 História programovacích jazykov 1.1 Úvod

Akýkoľvek programovací jazyk je formálny jazyk, pretože ho vymysleli ľudia na riešenie akýchkoľvek konkrétnych problémov. Napríklad súbor špeciálnych znakov a pravidiel na písanie vzorcov, ktoré používajú matematici na písanie vzorcov a dôkazov viet, je formálny jazyk.

Programovacie jazyky sú formálne jazyky určené na opis .

Formálne jazyky sa vyznačujú tým, že majú jasné syntaktické pravidlá.
Napríklad zápis 2x2=4 je syntakticky správny matematický zápis, ale 2=+4 nie je.

Keď čítate vetu v ruštine alebo výraz vo formálnom jazyku, určujete jej štruktúru, často nevedome. Tento proces sa nazýva analýza alebo analýza. Ekvivalentný anglický výraz je parsing (parsing)

Odtiaľ sa dostávame k tomu, čo sa nazýva programovacia paradigma.

Programovacia paradigma je určitý súbor pravidiel, ktorý určuje štýl písania programov.

Existuje niekoľko takýchto pravidiel, ktoré možno distribuovať podľa špecifík metodológie programovania:
- štruktúrované programovanie
- objektovo orientované programovanie
- logické programovanie a iné...

Treba poznamenať, že programovacia paradigma nie je jednoznačne definovaná programovacím jazykom; takmer všetky moderné jazyky programovanie tak či onak umožňuje použitie rôznych paradigiem.

Tu je zaujímavá úvodná prednáška
programovaním paradigiem
v ruštine:



Preložil Kovalev Filipp

Toto je prehľadná prednáška profesora Jerryho Kanea z Katedry informatiky na Stanfordskej univerzite.
Programovacie paradigmy predstavujú niekoľko jazykov vrátane C, Assembler, C++, Paralelné programovanie, Sheme a Python.
Ciele tento kurz- naučiť študentov písať kód v každom z týchto jazykov a pochopiť programovacie paradigmy reprezentované týmito jazykmi.

Na úsvite počítačového veku bol strojový kód jediným prostriedkom komunikácie medzi ľuďmi a počítačmi. Veľkým úspechom tvorcov programovacích jazykov bolo, že dokázali zabezpečiť, aby samotný počítač fungoval ako prekladateľ z týchto jazykov do strojového kódu.

Existujúce programovacie jazyky možno rozdeliť do dvoch skupín: procedurálne a neprocedurálne (pozri obrázok 4.1).

Procedurálne (alebo algoritmické) programy sú systémom receptov na riešenie konkrétneho problému. Úloha počítača sa redukuje na mechanické vykonávanie týchto predpisov.

Procedurálne jazyky sa delia na jazyky nízkej a vysokej úrovne.

odlišné typy procesory majú rôzne inštrukčné sady. Ak je programovací jazyk zameraný na konkrétny typ procesora a zohľadňuje jeho vlastnosti, potom je tzv nízkoúrovňový programovací jazyk.
To znamená, že operátori jazyka sú blízko strojového kódu a sú zameraní na špecifické inštrukcie procesora.

Ryža. 4.1. Všeobecná klasifikácia programovacích jazykov

Nízkoúrovňové (strojovo orientované) jazyky vám umožňujú vytvárať programy zo strojových kódov, zvyčajne v hexadecimálnej podobe. Práca s nimi je náročná, ale programy vytvorené s ich pomocou vysoko kvalifikovaným programátorom zaberajú menej miesta v pamäti a bežia rýchlejšie. Tieto jazyky uľahčujú vývoj systémové programy, ovládače (programy na správu počítačových zariadení), niektoré ďalšie typy programov.

Nízkoúrovňový (strojovo špecifický) jazyk je assembler, ktorý jednoducho predstavuje každú inštrukciu strojového kódu, nie ako čísla, ale s tzv. symbolickými konvenciami
mnemotechnické pomôcky.

S pomocou nízkoúrovňových jazykov sa vytvárajú veľmi efektívne a kompaktné programy, pretože vývojár získa prístup ku všetkým schopnostiam procesora.

Programovacie jazyky vysokej úrovnečloveku oveľa bližší a zrozumiteľnejší ako počítač. Vlastnosti špecifických počítačových architektúr sa v nich nezohľadňujú, takže programy vytvorené na úrovni zdrojový kód sú ľahko prenosné na iné platformy, pre ktoré bol vytvorený prekladač tohto jazyka. Je oveľa jednoduchšie vyvíjať programy v jazykoch na vysokej úrovni pomocou zrozumiteľných a výkonných príkazov a pri vytváraní programov je oveľa menej chýb.

Hlavnou výhodou algoritmických jazykov na vysokej úrovni je schopnosť opísať programy na riešenie problémov vo forme, ktorá je najvhodnejšia pre ľudské vnímanie. Ale keďže každá rodina počítačov má svoj špecifický interný (strojový) jazyk a môže vykonávať len tie príkazy, ktoré sú napísané v tomto jazyku, na preklad zdrojových programov do strojového jazyka sa používajú špeciálne prekladateľské programy.

Práca všetkých prekladateľov je založená na jednom z dvoch princípov: tlmočenie alebo kompilácia.

Výklad znamená preklad operátora po operátorovi a následné vykonanie preloženého operátora zdrojového programu. V tejto súvislosti možno konštatovať dva nedostatky interpretačnej metódy: po prvé, tlmočnícky program musí byť počas celého procesu vykonávania pôvodného programu v pamäti počítača, teda zaberať určité množstvo pamäte; po druhé, proces prekladu toho istého príkazu sa opakuje toľkokrát, koľkokrát by mal byť tento príkaz v programe vykonaný, čo výrazne znižuje výkon programu.

Napriek týmto nedostatkom, prekladatelia-tlmočníci dostali dostatočnú distribúciu, pretože sú vhodné pri vývoji a ladení zdrojových programov.

O kompilácia procesy prekladu a vykonávania sú časovo oddelené: najprv je zdrojový program kompletne preložený do strojového jazyka (potom je prítomný prekladateľ v Náhodný vstup do pamäťe sa stane zbytočným) a potom možno skompilovaný program opakovane spustiť. Preto pre ten istý program poskytuje preklad metódy kompilácie lepší výkon. výpočtový systém pri znižovaní potrebnej pamäte RAM.

Veľké ťažkosti pri vývoji kompilátora v porovnaní s tlmočníkom z rovnakého jazyka sú spôsobené skutočnosťou, že kompilácia programu zahŕňa dve činnosti: analýzu, t. j. určenie správnosti zdrojového programu v súlade s pravidlami pre vytváranie jazykových konštrukcií vstupu. jazyk a syntéza - generovanie ekvivalentných programov v strojovom kóde. Preklad metódou kompilácie vyžaduje opakované „prezeranie“ prekladaného programu, t.j. prekladateľ-kompilátor sú viacpriechodové: pri prvom prechode kontrolujú správnosť syntaxe jazykových konštruktov jednotlivých operátorov nezávisle na sebe, pri následnom prechode správnosť syntaktických vzťahov medzi operátormi atď.

Zavolá sa program získaný ako výsledok prekladu metódou kompilácie objektový modul, čo je ekvivalentný program v strojovom kóde, ale nie je „viazaný“ na konkrétne adresy RAM. Preto pred spustením musí byť modul objektu spracovaný špeciálny program operačný systém(editor odkazov - Odkaz) a prevedené na zavádzací modul.

Popri vyššie diskutovaných prekladateľoch-tlmočníkoch a prekladateľoch-kompilátoroch sa v praxi využívajú aj prekladače. kompilátorov, ktoré spájajú výhody oboch princípov prekladu: vo fáze vývoja a ladenia programov prekladateľ pracuje v režime tlmočníka a po dokončení procesu ladenia je zdrojový program znova preložený do objektového modulu (t. j. už spôsob kompilácie). To umožňuje výrazne zjednodušiť a zrýchliť proces kompilácie a ladenia programov a následným získaním objektového modulu zabezpečiť efektívnejšie vykonávanie programu.

Klasické procedurálne programovanie vyžaduje, aby programátor podrobne opísal, ako problém vyriešiť, t. j. formuláciu algoritmu a jeho špeciálny zápis. V tomto prípade zvyčajne nie sú špecifikované očakávané vlastnosti výsledku. Základné pojmy jazykov týchto skupín sú operátor a dáta.
V procedurálnom prístupe sa operátori spájajú do skupín – procedúr. Štrukturálne programovanie ako celok nepresahuje tento smer, iba dodatočne opravuje niektoré užitočné triky.
programovacie technológie.

Zásadne odlišný smer v programovaní je spojený s metodikami (niekedy nazývanými „paradigmy“) neprocedurálneho programovania. Patrí medzi ne objektovo orientované a deklaratívne programovanie. Objektovo orientovaný jazyk vytvára prostredie vo forme mnohých nezávislých objektov. Každý objekt sa správa ako samostatný počítač, možno ich použiť na riešenie problémov ako „čierne skrinky“, bez toho, aby sme sa vŕtali vo vnútorných mechanizmoch ich fungovania. Z objektových programovacích jazykov, ktoré sú medzi profesionálmi obľúbené, treba spomenúť predovšetkým C++, pre širší okruh programátorov sú vhodnejšie prostredia ako Delphi a Visual Basic.

Pri použití deklaratívneho jazyka programátor určí iniciály informačných štruktúr, vzťah medzi nimi a aké vlastnosti by mal mať výsledok. Programátor zároveň nevytvára postup na jeho získanie („algoritmus“) (aspoň ideálne). Tieto jazyky nemajú pojem „operátor“ („príkaz“). Deklaratívne jazyky možno rozdeliť do dvoch rodín - logické (typicky Prolog) a funkčné (Lisp).

Poďme charakterizovať najviac známe jazyky programovanie.

1.Fortran(systém FORmula TRANslating - systém prekladu vzorcov); najstarší a dodnes aktívne používaný jazyk pri riešení problémov matematickej orientácie. Je to klasický jazyk pre počítačové programovanie matematických a inžinierskych problémov.

2.ZÁKLADNÉ(Beginner's All-purpose Symbolic Instruction Code - univerzálny symbolický inštrukčný kód pre začiatočníkov); napriek mnohým nedostatkom a množstvu zle kompatibilných verzií je z hľadiska počtu používateľov najobľúbenejší. Je široko používaný pri písaní jednoduchých programov .

3.ALGOL(ALGOritmický jazyk - algoritmický jazyk); zohralo dôležitú úlohu v teórii, ale pre praktické programovanie teraz takmer nepoužívaný.

4.PL/1(PL / 1 Programming Language - prvý programovací jazyk); viacúčelový jazyk; teraz takmer nepoužívaný.

5.Pascal(Pascal - pomenovaný podľa vedca Blaisea Pascala); mimoriadne obľúbený ako pri štúdiu programovania, tak aj medzi profesionálmi. Vytvoril ho začiatkom 70-tych rokov švajčiarsky vedec Niklaus Wirth. Pascal bol pôvodne vyvinutý ako vzdelávací jazyk a teraz je skutočne jedným z hlavných jazykov na výučbu programovania na školách a univerzitách. Jeho kvality v súhrne sa však ukázali byť také vysoké, že ho ochotne využívajú aj profesionálni programátori. Nemenej pôsobivý, vrátane finančného úspechu, dosiahol Philip Kahn, Francúz, ktorý vyvinul systém Turbo-Pascal. Podstatou jeho myšlienky bolo spojiť postupné fázy spracovania programu – kompilácia, úprava odkazov, ladenie a diagnostika chýb – do jedného rozhrania. Verzie Turbo Pascalu zaplavili takmer všetky vzdelávacie inštitúcie, programovacie centrá a súkromné ​​firmy. Na základe jazyka Pascal bolo vytvorených niekoľko výkonnejších jazykov (Modula, Ada, Delphi).

6.cobol(COMmon Business Oriented Language - jazyk zameraný na všeobecné podnikanie); sa do značnej miery prestal používať. Bol koncipovaný ako hlavný jazyk pre hromadné spracovanie dát v oblastiach manažmentu
a podnikania.

7.ADA; je víťazným jazykom (máj 1979) súťaže univerzálneho jazykového dizajnu Pentagonu od roku 1975. Vývojármi je skupina vedcov vedená Jeanom Ihbiom. Víťazný jazyk bol pokrstený ADA, po Auguste Ada Lovelace. Jazyk ADA je priamym nástupcom jazyka
Pascal. Tento jazyk je určený na vytváranie a dlhodobé (viacročné) udržiavanie veľkých softvérové ​​systémy, umožňuje paralelné spracovanie, riadenie procesov v reálnom čase a oveľa viac, čo je ťažké alebo nemožné dosiahnuť pomocou jednoduchších jazykov.

8.Xi(C - "si"); široko používané pri tvorbe systémového softvéru. Zanechal veľký odtlačok moderného programovania (prvá verzia - 1972), je veľmi populárny medzi vývojármi softvérových systémov (vrátane operačných systémov). C kombinuje funkcie jazyka na vysokej úrovni a strojovo orientovaného jazyka, čo umožňuje programátorovi prístup ku všetkým strojovým zdrojom spôsobom, ktorý jazyky ako BASIC a Pascal neposkytujú.

9.C++(C++); objektovo orientované rozšírenie jazyka C, ktoré vytvoril Bjarne Stroustrup v roku 1980. Mnoho nových výkonných funkcií, ktoré dramaticky zvýšili produktivitu programátora, bolo prekrytých určitou nízkoúrovňovou povahou zdedenou z jazyka C.

10.Delphi(Delphi); objektovo orientovaný „vizuálny“ programovací jazyk; v súčasnosti mimoriadne populárny. Jazyk Delphi, vytvorený na základe jazyka Pascal špecialistami Borlandu, so silou a flexibilitou jazykov C a C++ ich predčí z hľadiska pohodlia a jednoduchosti rozhrania pri vývoji aplikácií, ktoré poskytujú interakciu s databázami a podporu pre rôzne druhy práce v rámci firemné siete a internet.

11.Java(Java); objektovo orientovaný programovací jazyk nezávislý na platforme, mimoriadne efektívny na vytváranie interaktívnych webových stránok. Tento jazyk vytvorila spoločnosť Sun začiatkom 90-tych rokov na základe C++. Je navrhnutý tak, aby zjednodušil vývoj aplikácií založených na C++ odstránením všetkých nízkoúrovňových funkcií z neho.

12.Lisp(Lisp) je funkčný programovací jazyk. Zameriava sa na dátovú štruktúru vo forme zoznamu a umožňuje organizovať efektívne spracovanie veľkého množstva textových informácií.

13.Prológ(PROgramovanie v LOGIC - logické programovanie). Hlavným účelom jazyka je rozvoj intelektuálne programy a systémov. Prolog je programovací jazyk navrhnutý špeciálne na prácu so znalostnými bázami založenými na faktoch a pravidlách (jeden z prvkov systémov umela inteligencia). Jazyk implementuje mechanizmus spätného sledovania na vykonanie spätného reťazca uvažovania, v ktorom sa predpokladá, že niektoré závery alebo závery sú pravdivé, a potom sa tieto predpoklady skontrolujú v znalostnej báze obsahujúcej fakty a pravidlá vyvodzovania.
Ak sa odhad nepotvrdí, vykoná sa návrat a nový odhad. Jazyk je založený na matematickom modeli teórie predikátového počtu.

Programovacie jazyky pre web:

1. HTML. Známy jazyk pre papierovanie. Je veľmi jednoduchý a obsahuje elementárne príkazy na formátovanie textu, pridávanie obrázkov, nastavenie písma a farieb, organizáciu odkazov a tabuliek.

2. PERL. Bol koncipovaný ako prostriedok efektívneho spracovania veľkých textové súbory, generovanie textových správ a správa úloh.
Perl je oveľa výkonnejší ako jazyky ako C. Zaviedol mnoho často používaných funkcií pre prácu s reťazcami, poľami, riadenie procesora a prácu so systémovými informáciami.

3. tcl/tk. Tento jazyk je zameraný na automatizáciu rutinných procesov a pozostáva z výkonných príkazov. Je nezávislý od systému a zároveň umožňuje vytvárať programy s grafickým rozhraním.

4. VRML. Navrhnuté na organizovanie virtuálnych 3D rozhraní na internete. Umožňuje popísať v textovej forme rôzne trojrozmerné scény, osvetlenie a tiene, textúry.

Výber programovacieho jazyka závisí od mnohých faktorov: účel, pohodlnosť písania zdrojových programov, efektivita výsledných objektových programov atď. Rozmanitosť úloh riešených počítačom určuje rozmanitosť programovacích jazykov.

testovacie otázky

1. Čo sú programovacie systémy a do akej triedy programov patria?

2. Čo je súčasťou programovacích systémov?

3. V akom programovacom jazyku vznikli prvé programy?

4. Na aké jazyky sa delia procedurálne jazyky?

5. Popíšte jazyky nízkej úrovne.

6. Ktorý jazyk je jazykom nízkej úrovne?

7. Výhody nízkoúrovňových jazykov.

8. Popíšte jazyky na vysokej úrovni.

9. Výhody jazykov na vysokej úrovni.

10. Uveďte príklady jazykov na vysokej úrovni.

11. Na čo slúžia prekladače?

12. Aký je rozdiel medzi kompilátorom a tlmočníkom?

13. Nedostatky tlmočenia (ako druh prekladateľa).

14. Aký je proces zostavovania programu?

15. Aké akcie sa vykonávajú počas kompilácie?

16. Aký je rozdiel medzi zaťažovacím modulom a objektovým modulom?

17. Aký je rozdiel medzi procedurálnym programovaním a neprocedurálnym programovaním?

18. Aké typy programovania sú neprocedurálne
programovanie?

19. Vlastnosť deklaratívnych jazykov.

20. Stručne popíšte programovacie jazyky: Fortran, BASIC, Pascal, Cobol.

21. Stručne popíšte programovacie jazyky: Ada, C, C++, Delphi, Java.

22. Uveďte príklady objektovo orientovaných jazykov.

23. Do akej triedy jazykov patrí Lisp?

24. Do akej triedy jazykov patrí jazyk Prolog?


Generácie programovacích jazykov

Potreba programovania vznikla ešte pred programovateľnými počítačmi. Je známe, že už od 18. storočia existovali napríklad krosná naprogramované drevenými doskami, do ktorých sa robili otvory na správnych miestach.

Vývoj programovania uľahčila myšlienka Johna Von Neumanna, publikovaná v roku 1945, v ktorej opísal počítač, v ktorom je samotný program uložený v pamäti spolu s údajmi.

Programovacím jazykom prvej generácie je strojový kód. Strojový kód pozostáva z inštrukcií, ktoré môže počítač (procesor) vykonať (a z údajov, ktoré k týmto inštrukciám patria). Pri programovaní v strojovom kóde musel programátor napísať svoj program v binárnom kóde, aby ho procesor pochopil a vykonal. Takéto programovanie si v podstate vyžaduje dobrú znalosť a pochopenie hardvéru, pretože v procese programovania je potrebné vedieť, čo dokáže procesor, kde sa nachádzajú I/O-Input-Output zariadenia a tiež ako komunikovať. s nimi a koľko času strávi konkrétna operácia. Strojový kód je teda veľmi pevne spojený s hardvérom, na ktorom bude bežať príslušný program. Dodnes strojový kód z počítačov nezmizol, všetky akcie na nízkej úrovni (hardvérovej úrovni) sa stále vyskytujú v strojovom kóde, t.j. bez ohľadu na to, v akom programovacom jazyku je program napísaný, nakoniec bude prevedený na zrozumiteľný hardvér strojový kód.

Assemblerské jazyky sa považujú za jazyky druhej generácie. V prípade strojového kódu všetko programovanie prebiehalo v binárnom kóde a v súvislosti s tým bolo čítanie a ladenie časovo veľmi náročné. Pri programovaní v jazyku symbolických inštrukcií sú pokyny prezentované osobe v zrozumiteľnej forme. Samotné programovanie je veľmi podobné programovaniu v strojovom kóde, pretože inštrukcie sú rovnaké ako v strojovom kóde (len v inej forme – vo forme slov). Program napísaný v jazyku symbolických inštancií je niečo ako nasledovné:

MOV AL, 19

PRIDAŤ AL, 4

VON 2

Tento útržok kódu priradí do registra AL hodnotu 19 (zvyčajne sú hodnoty reprezentované číslami v šestnástkovej sústave), k hodnote registra AL pridá číslo 4 a potom odošle na výstup číslo 2. program je preložený z assembleru do strojového kódu a potom môže procesor spustiť jeho vykonávanie.

Jazyky symbolov a strojový kód sa považujú za jazyky nízkej úrovne.

Programovacie jazyky tretej generácie sa už nazývajú jazyky na vysokej úrovni. Takéto programovacie jazyky veľmi nesúvisia s hardvérom. To znamená, že programátor už nemusí veľmi presne poznať dizajn a vlastnosti hardvéru, ale môže relatívne nezávisle od hardvéru, po čom sa tento program prevedie pomocou rôznych nástrojov do podoby zrozumiteľnej pre hardvér. Presnejšie, ako sa to robí, bude popísané neskôr.

Jazyky tretej generácie zahŕňajú väčšinu známych a používaných programovacích jazykov, napríklad:

FORTRAN (The IBM Mathematical FORmula TRANslating System) je programovací jazyk vyvinutý v 50. rokoch minulého storočia pre matematické výpočty a vedecké účely.

COBOL (COMmon Business Oriented Language) – objektovo orientovaný programovací jazyk, vytvorený v roku 1959, hlavne na písanie programov, ktoré uspokoja potreby podniku.

BASIC (Beginner's All-purpose Symbolic Instruction Code) – Jazyk vyvinutý v roku 1963, ktorý bol pôvodne vytvorený, aby inžinieri mohli vykonávať rôzne simulácie na počítačoch.

Pascal – Programovací jazyk vytvorený v 70. rokoch 20. storočia, ktorý bol určený na výučbu programovania.

C - názov pochádza zo skutočnosti, že tento jazyk bol založený hlavne na jazyku s názvom B. Bol vytvorený na písanie operačných systémov (v tomto jazyku je napísaných mnoho operačných systémov kompatibilných s UNIXom) a je dlhodobo jedným z najpopulárnejších programovacích jazykov.

C++ je objektovo orientované C.

Java je programovací jazyk vyvinutý na báze C++.

Visual Basic, Delphi, Python, C# sú všetky jazyky tretej generácie. Mnoho programovacích jazykov tretej generácie je mladších (novších) ako niektoré jazyky štvrtej a piatej generácie.

Programovacie jazyky štvrtej generácie navrhnuté tak, aby sa ich ľahšie naučili a používali. Tieto jazyky majú tendenciu byť neprocedurálne zamerané na jednu aplikáciu. Príkladom programovacieho jazyka štvrtej generácie je SQL (Structured Query Language). Hovorí viac „čo robiť“ a menej „ako robiť“. Jazyky piatej generácie sú vytvorené pre vývoj systémov umelej inteligencie a pre riešenie problémov súvisiacich s touto témou.

Základné typy programovacích jazykov.

Na rozdiel od generácií programovacích jazykov základné typy popisujú, ako sa dá jazyk naprogramovať. Medzi hlavné základné typy patria: procedurálne, funkcionálne a objektovo orientované programovacie jazyky.

V procedurálnych programovacích jazykoch programovací jazyk popisuje akcie a poradie, v akom sa vykonávajú, pričom tieto akcie sú tiež rozdelené do skupín (podprogramov). Procedúry zase vytvárajú kódové štruktúry, ktoré je možné opätovne použiť. Vo funkcionálnych programovacích jazykoch je celé riešenie popísané pomocou funkcií. V objektovo orientovaných programovacích jazykoch sa problém rieši pomocou funkcií a dátových štruktúr popísaných v triedach (Eng. Class). Z každej triedy môžete vytvoriť objekt, ktorý bude mať sadu vlastností a / alebo metód.

Vlastnosti sú hodnoty, ktoré môže objekt obsahovať a ktoré môžu ovplyvniť správanie objektu. Napríklad na základe triedy "okno konzoly" môžete vytvoriť objekt "console1", ktorý bude pre používateľa viditeľný ako jedno okno konzoly. Tento objekt má niektoré vlastnosti (zobrazené, skryté, šírka, výška, farba textu v okne konzoly, farba pozadia atď.), zmenou týchto vlastností môžete v tomto konkrétnom prípade zmeniť vzhľad objekt.

V tom istom príklade môže mať objekt aj niektoré metódy, napríklad odkazom na zodpovedajúcu metódu môžete napísať nejaký text do okna konzoly, prečítať text zadaný používateľom do nejakej premennej atď.

Druhým príkladom je trieda “textová premenná”, pričom na základe tejto triedy vytvoríme objekt “SimpleText”, vytvoríme jednu textovú premennú, ktorej hlavnou vlastnosťou je uložená textová hodnota, no v skutočnosti má tento objekt viac vlastností (napr. , dĺžka uloženej textovej hodnoty). Tiež textová premenná musí mať určitú množinu metód (zmeniť znaky uloženej hodnoty na malé, veľké, odstrániť niektoré znaky atď.).

Preto popisovaním tried a manipuláciou s objektmi je možné skladať veľmi zložité programy a vykonávať rôzne akcie.

Interpretované a kompilované jazyky

Predtým, ako môže počítač spustiť program napísaný v jazyku vysokej úrovne, musí byť „preložený“ do jazyka zrozumiteľného počítaču, t.j. strojový kód. Tento proces prekladu sa nazýva preklad a program prekladateľa sa nazýva prekladač. Prekladatelia sú rozdelení do dvoch tried: kompilátori a tlmočníci.

Kompilácia je, keď program v strojovom kóde (nazývaný kompilátor) konvertuje iný program napísaný v programovacom jazyku na strojový kód. Potom sa vykoná výsledný strojový kód programu. Príklady kompilovaných jazykov sú C, Fortran, Pascal.

Interpretácia je taká, že program v strojovom kóde (prekladač) zapíše súbor programu do internej pamäte a začne ho vykonávať riadok po riadku. Príkladom je starý jazyk BASIC.

Interpretácia programu je asi 10-200 krát pomalšia ako vykonávanie skompilovaného kódu. Naproti tomu ladenie (odstránenie chýb z programu) interpretovaného programu je zvyčajne jednoduchšie ako preloženého programu. V niektorých vhodných prípadoch a s dostupnými nástrojmi môžu byť tieto rozdiely oveľa menšie. dobrý príklad slúži Jave s kódom optimalizovaným a kompilovaným na strednej úrovni, ktorý je za behu preložený kompilátorom Just-in-Time tak, aby vyhovoval konkrétnemu hardvéru.

V zásade môže byť program napísaný v akomkoľvek jazyku interpretovaný aj kompilovaný.

1. Úvod

Zavedenie počítačov do všetkých oblastí ľudskej činnosti si vyžaduje, aby špecialisti rôznych profilov ovládali zručnosti používania výpočtovej techniky. Zvyšuje sa úroveň prípravy študentov vysokých škôl, ktorí sa už od prvých kurzov zoznamujú s používaním počítačov a najjednoduchších numerických metód, nehovoriac o tom, že v predmetových a absolventských projektoch sa využívanie výpočtovej techniky stáva čoraz dôležitejším. normou na veľkej väčšine univerzít.

Počítačová technológia sa dnes používa nielen v inžinierskych výpočtoch a ekonomike, ale aj v takých tradične nematematických špecializáciách, ako je medicína, lingvistika a psychológia. V tejto súvislosti možno konštatovať, že používanie počítačov sa rozšírilo. Vznikla veľká kategória špecialistov – používatelia počítačov, ktorí potrebujú znalosti o používaní počítačov vo svojom odvetví – zručnosti v práci s existujúcimi softvér, ako aj vytváranie vlastného softvéru, prispôsobeného na riešenie konkrétneho problému. A tu popisy programovacích jazykov prichádzajú na pomoc používateľovi.

2. Čo je to programovací jazyk

Programovací jazyk- formálny znakový systém určený na opis algoritmov vo forme, ktorá je vhodná pre výkonného umelca (napríklad počítač). Programovací jazyk definuje súbor lexikálnych, syntaktických a sémantických pravidiel používaných pri zostavovaní počítačového programu. Umožňuje programátorovi presne určiť, na aké udalosti bude počítač reagovať, ako sa budú údaje ukladať a prenášať a aké akcie by sa s nimi mali za rôznych okolností vykonávať.

Od stvorenia prvých programovateľných strojov si ľudstvo vymyslelo viac ako dva a pol tisíca programovacích jazykov. Každý rok sa ich počet dopĺňa o nové. Niektoré jazyky používa iba malý počet vlastných vývojárov, iné sa stávajú známymi miliónom ľudí. Profesionálni programátori niekedy pri svojej práci používajú viac ako tucet rôznych programovacích jazykov.

Tvorcovia jazykov interpretujú tento koncept inak. programovací jazyk. Medzi bežné miesta, ktoré väčšina vývojárov uznáva, patria:

· Funkcia: programovací jazyk je určený na písanie počítačových programov, ktoré sa používajú na prenos inštrukcií do počítača na vykonanie konkrétneho výpočtového procesu a organizáciu riadenia jednotlivých zariadení.

· Úloha: Programovací jazyk sa líši od prirodzených jazykov v tom, že je určený na prenos príkazov a údajov z osoby do počítača, zatiaľ čo prirodzené jazyky sa používajú iba na komunikáciu medzi ľuďmi. V zásade možno zovšeobecniť definíciu „programovacích jazykov“ – ide o spôsob prenosu príkazov, príkazov, jasný návod na akciu; pričom ľudské jazyky slúžia aj na výmenu informácií.

· prevedenie: Programovací jazyk môže používať špeciálne konštrukcie na definovanie a manipuláciu s dátovými štruktúrami a na riadenie procesu výpočtu.

3. Etapy riešenia problému na počítači.

Najúčinnejšia aplikácia VT sa zistila pri vykonávaní výpočtov náročných na prácu vo vedeckom výskume a inžinierskych výpočtoch. Pri riešení problému na počítači stále patrí hlavná úloha človeku. Stroj iba plní svoje úlohy podľa vyvinutého programu. úloha človeka a stroja je ľahko pochopiteľná, ak je proces riešenia problému rozdelený do krokov uvedených nižšie.

Formulácia problému. Táto etapa spočíva v zmysluplnej (fyzickej) formulácii problému a určení konečných riešení.

Konštrukcia matematického modelu. Model musí správne (adekvátne) popisovať základné zákonitosti fyzikálneho procesu. Zostavenie alebo výber matematického modelu z existujúcich si vyžaduje hlboké pochopenie problému a znalosť príslušných častí matematiky.

Vývoj majstrovstiev sveta. Keďže počítač dokáže vykonávať len tie najjednoduchšie operácie, „nerozumie“ zadanej úlohe ani v matematickej formulácii. Na jeho vyriešenie je potrebné nájsť numerickú metódu, ktorá umožní zredukovať problém na nejaký výpočtový algoritmus. V každom konkrétnom prípade je potrebné zvoliť vhodné riešenie z už vyvinutých štandardných.

Vývoj algoritmu. Proces riešenia problému (výpočtový proces) je napísaný ako postupnosť elementárnych aritmetických a logických operácií, ktoré vedú k konečný výsledok a zavolali algoritmus na riešenie problému.

Programovanie. Algoritmus riešenia problému je napísaný v strojovo zrozumiteľnom jazyku vo forme presne definovanej postupnosti operácií – programu. Proces sa zvyčajne vykonáva pomocou nejakého medzijazyka a jeho preklad vykonáva samotný stroj a jeho systém.

Ladenie programu. Kompilovaný program obsahuje rôzne druhy chýb, nepresností a opomenutí. Ladenie zahŕňa ovládanie programu, diagnostiku (vyhľadávanie a zisťovanie obsahu) chýb a ich odstraňovanie. Program je testovaný na riešení kontrolných (testovacích) úloh na získanie dôvery v spoľahlivosť výsledkov.

Vykonávanie výpočtov. V tejto fáze sa pripravia počiatočné údaje pre výpočty a výpočet sa vykoná podľa ladeného programu. zároveň pre zníženie ručnej práce pri spracovaní výsledkov, pohodlné formy vydávania výsledkov vo forme textu a grafické informácie, v ľudsky čitateľnej forme.

Analýza výsledkov. Výsledky výpočtov sa starostlivo analyzujú a vypracuje sa vedecká a technická dokumentácia.

4. Na čo slúžia programovacie jazyky?

Proces prevádzky počítača spočíva vo vykonávaní programu, to znamená kompletného súboru určité príkazy vo veľmi konkrétnom poradí. Strojová forma príkazu pozostávajúca z núl a jednotiek označuje, aký druh akcie by sa mal vykonať CPU. To znamená, že ak chcete počítaču oznámiť postupnosť akcií, ktoré musí vykonať, musíte nastaviť postupnosť binárnych kódov zodpovedajúcich príkazov. Programy strojového kódu pozostávajú z tisícok inštrukcií. Písanie takýchto programov je náročná a únavná úloha. Programátor si musí zapamätať kombináciu núl a jednotiek binárneho kódu každého programu, ako aj binárne kódy dátových adries použitých pri jeho vykonávaní. Je oveľa jednoduchšie napísať program v nejakom jazyku, ktorý je bližší prirodzenému ľudskému jazyku, a poveriť počítač úlohou preložiť tento program do strojových kódov. Tak vznikli jazyky navrhnuté špeciálne na písanie programov - programovacie jazyky.

Existuje mnoho rôznych programovacích jazykov. V skutočnosti môžete použiť ktorýkoľvek z nich na vyriešenie väčšiny problémov. Skúsení programátori vedia, ktorý jazyk je lepšie použiť na riešenie každého konkrétneho problému, pretože každý jazyk má svoje vlastné schopnosti, orientáciu na určité typy úloh, svoj vlastný spôsob popisu pojmov a objektov používaných pri riešení problémov.

Celú sadu programovacích jazykov možno rozdeliť do dvoch skupín: jazyky nízkej úrovne a jazyky na vysokej úrovni.

Medzi jazyky nízkej úrovne patria jazyky montáže (z angličtiny toassemble - zostaviť, zostaviť). Jazyk symbolických inštrukcií používa symboly pre pokyny, ktoré sú ľahko pochopiteľné a ľahko zapamätateľné. Namiesto postupnosti binárnych kódov príkazov sa zapíšu ich symbolické označenia a namiesto binárnych adries dát použitých pri vykonávaní príkazu sa zapíšu symbolické názvy týchto dát, ktoré si zvolí programátor. Assembler sa niekedy označuje ako mnemokód alebo autokód.

Väčšina programátorov používa na písanie programov jazyky na vysokej úrovni. Tak ako bežný ľudský jazyk, aj takýto jazyk má svoju abecedu – súbor symbolov používaných v jazyku. Tieto symboly tvoria takzvané kľúčové slová jazyka. Každé z kľúčových slov plní svoju funkciu, tak ako v jazyku, na ktorý sme zvyknutí, máme slová zložené z písmen abecedy. daný jazyk, môže vykonávať funkcie rôznych častí reči. Kľúčové slová sa navzájom spájajú do viet podľa určitých syntaktických pravidiel jazyka. Každá veta definuje určitú postupnosť akcií, ktoré musí počítač vykonať.

Jazyk na vysokej úrovni funguje ako prostredník medzi osobou a počítačom, čo umožňuje osobe komunikovať s počítačom pre človeka známejším spôsobom. Takýto jazyk často pomáha vybrať správnu metódu riešenia problému.

Pred napísaním programu v jazyku vysokej úrovne musí programátor napísať algoritmu riešenie problémov, teda akčný plán krok za krokom, ktorý je potrebné dokončiť na vyriešenie tohto problému. Preto sa často nazývajú jazyky, ktoré vyžadujú predbežnú kompiláciu algoritmu algoritmické jazyky.

Ešte včera bola informatika v Sovietskom zväze považovaná za pseudovedu. A dnes sa niektoré vlády sťažujú na útoky ruských hackerov.

A hoci sa v Rusku zatiaľ vyrába málo high-tech zariadení a zariadení, máme aj dosť šikovných programátorov.

Dnes si povieme niečo o počítačových jazykoch, ich klasifikácii, podstate, možnostiach a perspektívach budúceho využitia.

Začnime teóriou. V prvom rade sa pozrime na koncept.

Čo sú počítačové jazyky?

Ide o systém znakov, symbolov, ktorý bol vytvorený pre „komunikáciu“ človeka s počítačom. Nemôžeme to predsa len vziať, ísť k počítaču a začať mu niečo vysvetľovať. Na tento účel existujú špeciálne slovné kódy a slovná zásoba, ktoré tvoria počítačové jazyky. A už sa dostávajú k počítaču vo forme, ktorej rozumie.

K dnešnému dňu existuje viac ako 8 tisíc rôznych jazykov pre ľudskú komunikáciu s počítačom. Samozrejme, nemôžete ich poznať všetky. Niekto si vytvára jazyk pre seba a niekto to robí na komerčnej báze.

Ale dobrý programátor by mal vedieť aspoň pár základných k dokonalosti.

Aké sú najobľúbenejšie programovacie jazyky?

Svet počítačovej techniky sa neustále zlepšuje: objavuje sa nový vývoj, pripomína sa minulosť. Spolu s tým sa objavujú alebo objednávajú počítačové programovacie jazyky. Medzi najobľúbenejšie z nich, ktoré sa používajú celosvetovo, patria:

Samozrejme jazykov je v skutočnosti ešte viac, no my sme vybrali tie najzákladnejšie, v ktorých je napísaných viac ako 90 % všetkých počítačových aplikácií. Ďalej sa pozrime bližšie na každý z nich.

Procedurálne C/C++

Jazyky C a C++ možno nazvať dvoma bratmi. Existujú tvrdenia, že ide o dva úplne odlišné programovacie jazyky, čo nie je pravda. C++ je určitým vylepšením predchádzajúceho jazyka, uľahčuje písanie programov a zachováva rovnakú syntax.

C sa vyvíjalo od sedemdesiatych rokov minulého storočia, v osemdesiatych rokoch začali vytvárať C++. K dnešnému dňu možno ten druhý nazvať jedným z najpopulárnejších. Je tak všestranný, že ho môžete použiť na vytvorenie operačného systému, ovládačov zariadení, hier a podobne.

Keď už hovoríme o výhodách a nevýhodách tohto jazyka, nemožno vyvodiť jednoznačné závery. Existujú jeho priaznivci a sú tu aj nemilosrdní kritici. Základom pre spory je, že tento programovací jazyk nemá nič vlastné.

Jeho tvorcovia takpovediac spojili funkcie a možnosti niekoľkých programovacích jazykov do jedného. Výsledkom je komplexný a rozsiahly programovací nástroj. Ale ak to rozoberiete podľa jednotlivých funkcií, potom je to horšie ako vysoko špecializované jazyky.

Nezávislá a bezpečná Java

Tento anglický počítačový jazyk vyvinula spoločnosť Sun Microsystems. Vďaka tomu, že napísaný program je preložený do špeciálneho bajtkódu, je schopný pracovať bez ohľadu na typ operačného systému alebo architektúru počítača.

To robilo jazyk Java najpopulárnejší. Dá sa nájsť úplne vo všetkých domáce prístroje, bankomaty, mestské automaty a takmer všetko, čo súvisí s výpočtovou technikou. Práve v Jave sú napísané najpopulárnejšie aplikácie pre smartfóny a telefóny.

Tento programovací jazyk má tiež pomerne vysokú úroveň zabezpečenia. Vykonávanie akcií programu v rámci jeho oprávnenia je riadené, čím program prenáša príkazy do zariadení. Preto, keď sa pokúsite vykonať akúkoľvek inú úlohu, program okamžite prestane pracovať.

Ak hovoríme o jednoduchosti jazyka, potom stojí za zmienku štúdie, ktoré ukázali, že podobné operácie sú napísané 1,2-2 krát dlhšie ako v C ++. Na vykonanie príkazov je tiež potrebných niekoľkonásobne viac zdrojov. Ale tím výrobcu neustále vydáva mnoho aktualizácií, ktoré minimalizujú všetky nedostatky tohto programovacieho jazyka.

PHP, ktoré dobylo internet

Chcete si vytvoriť vlastnú webovú stránku alebo sa venovať programovaniu webu? Vynikajúce jazyk PHP ktorý je schopný vytvoriť dynamické stránky. Je snáď najobľúbenejší pri tvorbe webových stránok a písaní webových aplikácií.

Vďaka tomu, že tento programovací jazyk vytvorili vývojári s otvoreným zdrojovým kódom, bol dovedený k dokonalosti a získal si divokú popularitu. PHP jednoducho spolupracuje s rôznymi databázami – od MySQL po Access.

V tomto jazyku sú písané najpopulárnejšie webové stránky na internete, ako napríklad Facebook alebo Wikipedia.

Písanie na ňom je dosť jednoduché. Existuje dokonca štatistika, že viac ako 60 % svetových programátorov, ktorí pracujú na kóde PHP, má skôr obmedzené znalosti (v Základná úroveň) Anglický jazyk. Počítačová gramotnosť je v tomto prípade limitovaná len znalosťou potrebných funkcií a postupov.

Nie je možné ignorovať kritiku jazyka. Napriek tomu, že v rebríčku najpopulárnejších jazykov v roku 2015 sa PHP umiestnilo na 6. mieste, často sa proti nemu prejavuje nespokojnosť.

V prvom rade tento jazyk nevytvorila jedna skupina programátorov, ale viacero. Z tohto dôvodu nie je syntax jazyka jednotná a nemá jednotnú architektúru. Existujú rôzne postupy, ktoré je potrebné opísať osobitným spôsobom a nie podľa štandardizovanej šablóny.

Jedným z hlavných problémov možno tiež nazvať nedostatok kompatibility medzi nimi rôzne verzie jazykoch. Staršie verzie absolútne odmietajú pracovať s aktualizáciami, čo často spôsobuje problémy pri prenose kódu z jednej verzie do druhej.

Relevantnosť znalosti a porozumenia programovacích jazykov

Téma schopnosti „rozprávať sa“ s počítačom v poslednom desaťročí naberá na obrátkach.

A to nie je prekvapujúce, pretože Informačné technológie nepokojne zavedená do našich životov a už ani zubná kefka sa nezaobíde bez „mozgov“. Kód musí byť naprogramovaný a servis zariadení musí vykonávať špecialista. Preto je vždy dopyt po kompetentných programátoroch.

Ďalším dôvodom, prečo sa mnohí učia počítačové jazyky, je recesia ekonomiky krajiny. Človek, ktorý vie profesionálne písať v Jave, môže pracovať na diaľku pre zahraničnú spoločnosť zaoberajúcu sa vývojom aplikácií a za mesiac zarobiť také peniaze, aké by si musel desaťročia šetriť vo vlastnej krajine.

Ale ak sa nad tým zamyslíte, je dosť ťažké začať úspešne programovať a písať počítačové programy. anglický jazyk- to je hlavná prekážka pre začiatočníkov. Koniec koncov, väčšina programov a jazykov je napísaná s ohľadom na slovnú zásobu tohto medzinárodného jazyka.

Môžete sa učiť jazyky online

Takže musíte študovať cudzí jazyk aspoň na základnej úrovni, kým nebol vynájdený ruský počítačový jazyk.

Ale nebojte sa, svet nestojí. Dnes môžete študovať bez toho, aby ste opustili svoj domov. Hlavná vec je mať počítač a internet. Existuje mnoho stránok, ktoré poskytujú výučbu počítačových jazykov. Najpopulárnejšie z nich sú Codecademy, Code School a Udacity.