Programovací jazyky co za co. Volba programovacího jazyka

by Lukáš Bílek

Programování je celá věda, která vám umožňuje vytvářet počítačové programy. Zahrnuje obrovské množství různých operací a algoritmů, které tvoří jeden programovací jazyk. Co to tedy je a jaké jsou programovací jazyky? Tento článek poskytuje odpovědi a také přehledný seznam programovacích jazyků.

Historie vzniku a změn programovací jazyky by měl být studován spolu s historií vývoje počítačová technologie, protože tyto pojmy spolu přímo souvisejí. Bez programovacích jazyků by bylo nemožné vytvořit jakýkoli program pro provoz počítače, což znamená, že by se tvorba počítačů stala nesmyslným cvičením.

První strojový jazyk vynalezl v roce 1941 Konrad Zuse, který je vynálezcem analytického motoru. O něco později, v roce 1943, vytvořil Howard Aiken stroj Mark 1, schopný číst pokyny na úrovni strojového kódu.

V roce 1950, aktivní poptávka po rozvoji softwarea strojový jazyk nedokázal zvládnout velké množství kódu, takže byl vytvořen nový způsob komunikace s počítači. Assembler je první mnemotechnický jazyk, který nahrazuje strojové pokyny. V průběhu let se seznam programovacích jazyků pouze rozrůstá, protože oblast aplikace počítačových technologií se rozšiřuje.

Klasifikace programovacích jazyků

V současné době existuje více než 300 programovacích jazyků. Každý z nich má své vlastní charakteristiky a je vhodný pro jeden konkrétní úkol. Všechny programovací jazyky lze zhruba rozdělit do několika skupin:

Aspektově orientovaný (hlavní myšlenkou je oddělení funkcí pro zvýšení efektivity softwarových modulů).

Strukturální (na základě myšlenky vytvoření hierarchické struktury jednotlivých programových bloků).

Logické (založené na teorii aparátu matematické logiky a pravidlech řešení).

Objektově orientovaný (v takovém programování se nepoužívají algoritmy, ale objekty, které patří do určité třídy).

Multi-paradigma (kombinujte několik paradigmat a programátor sám rozhodne, který jazyk v konkrétním případě použije).

Funkční (hlavními prvky jsou funkce, které mění hodnotu v závislosti na výsledcích výpočtů počátečních dat).

Programování pro začátečníky

Mnoho lidí si klade otázku, co je to programování? V zásadě jde o způsob komunikace s počítačem. Díky programovacím jazykům můžeme dát dříve různá zařízení konkrétní úkoly vytvořením speciálních aplikací nebo programů. Při studiu této vědy v počáteční fázi je nejdůležitější zvolit vhodný (pro vás zajímavý) programovací jazyk. Seznam startérů je uveden níže:

Basic byl vynalezen v roce 1964, patří do rodiny jazyků vysoké úrovně a používá se k psaní aplikačních programů.

Python („Python“) je poměrně snadné se naučit díky jeho jednoduché čitelné syntaxi, ale výhodou je, že s ním můžete vytvářet jak běžné desktopové programy, tak webové aplikace.

Pascal ("Pascal") - jeden z nejstarších jazyků (1969), vytvořený pro výuku studentů. Jeho moderní modifikace je silně napsaná a strukturovaná, ale Pascal je docela logický jazyk, který je srozumitelný na intuitivní úrovni.

Není úplný seznam programovací jazyky pro začátečníky. Existuje obrovské množství syntaxí, které jsou k dispozici pro pochopení a v příštích letech budou určitě žádané. Každý má právo nezávisle si vybrat směr, který bude pro něj zajímavý.

Začátečníci mají příležitost urychlit učení programování a jeho základů díky speciálním nástrojům. Hlavním asistentem je integrované vývojové prostředí pro programy a aplikace Visual Basic (Visual Basic je také programovací jazyk, který zdědil základní styl 70. let).

Úrovně programovacího jazyka

Všechny formalizované jazyky určené k vytváření, popisu programů a algoritmů pro řešení problémů na počítačích jsou rozděleny do dvou hlavních kategorií: nízkoúrovňové programovací jazyky (seznam je uveden níže) a vysoká úroveň... Promluvme si o každém z nich zvlášť.

Nízkoúrovňové jazyky jsou navrženy tak, aby vytvářely strojové pokyny pro procesory. Jejich hlavní výhodou je, že používají mnemotechnickou notaci, to znamená, že místo posloupnosti nul a jedniček (ze systému binárních čísel) si počítač pamatuje smysluplné zkrácené slovo z anglického jazyka. Nejznámějšími jazyky nižší úrovně jsou „Assembler“ (existuje několik poddruhů tohoto jazyka, z nichž každý má mnoho společného, u200bu200bliší se však pouze sadou dalších směrnic a maker), CIL (k dispozici na platformě .Net) a JAVA Bytecode.

Programovací jazyky na vysoké úrovni: seznam

Jazyky vysoké úrovně jsou navrženy pro pohodlí a efektivitu aplikací, jsou pravým opakem jazyků nízké úrovně. Jejich charakteristickým rysem je přítomnost sémantických struktur, které stručně a stručně popisují struktury a algoritmy programů. V jazycích nízké úrovně by jejich popis ve strojovém kódu byl příliš dlouhý a nepochopitelný. Jazyky vysoké úrovně jsou nezávislé na platformě. Místo toho kompilátoři plní funkci překladače: překládají text programu do základních instrukcí stroje.

Následující seznam programovacích jazyků: C ("C"), C # ("C-sharp"), "Fortran", "Pascal", Java ("Java") - patří k nejpoužívanějším syntaxím na vysoké úrovni. Má následující vlastnosti: tyto jazyky pracují se složitými strukturami, podporují datové typy řetězců a operace se soubory informací I / O a také mají výhodu, že se s nimi díky čitelnosti a jasné syntaxi mnohem snáze pracuje.

Nejpoužívanější programovací jazyky

V zásadě můžete napsat program v jakémkoli jazyce. Otázka zní, bude to fungovat efektivně a hladce? Proto je pro řešení různých problémů nejvíce vhodné jazyky programování. Seznam podle popularity lze charakterizovat následovně:

jazyky OOP: Java, C ++, Python, PHP, VisualBasic a JavaScript;

skupina strukturních jazyků: Basic, Fortran a Pascal;

multi-paradigma: C #, Delphi, Curry a Scala.

Rozsah programů a aplikací

Volba jazyka, ve kterém je tento nebo ten program napsán, do značné míry závisí na oblasti jeho použití. Například pro práci s „hardwarem“ samotného počítače (psaní ovladačů a podpůrných programů) je nejlepší volbou C („C“) nebo C ++, které jsou zahrnuty v hlavních programovacích jazycích (viz seznam výše). A pro vývoj mobilních aplikací, včetně her, byste měli zvolit Java nebo C # („C-Sharp“).

Pokud jste se dosud nerozhodli, kterým směrem pracovat, doporučujeme vám začít se učit z jazyků C nebo C ++. Mají velmi jasnou syntaxi, jasné strukturální rozdělení do tříd a funkcí. Navíc se znalostí jazyka C nebo C ++ se můžete snadno naučit jakýkoli jiný programovací jazyk.

Otázce výběru programovacího jazyka čelí jak začátečníci, kteří se chtějí vrhnout do světa vzrušujícího programování, tak zkušení programátoři, kteří znají jeden nebo více programovacích jazyků.

Pojďme se rychle podívat na to, jaké jazyky existují, k čemu jsou a jaký programovací jazyk pro vás zvolit.

Existuje obrovské množství programovacích jazyků. Každý jazyk byl vynalezen a vytvořen za účelem vyřešení konkrétního typu problému. Většina jazyků se překrývá ve funkčnosti, takže stejný úkol lze vyřešit pomocí různých nástrojů. Ale zároveň má každý programovací jazyk své vlastní výhody, a to i při řešení jednoho typu problému.

Seznam hlavních programovacích jazyků, které používá většina programátorů

Hlavní programovací jazyky:

Peklo. Jaderná ponorka. Assembler. ActionScript. ABAP / 4. AutoIt. AWK. ZÁKLADNÍ. C. Cobol. C ++. C #. Cω. Clarione. Clojure. Studená fúze. Společný Lisp. D. dBase. Delphi. Eiffelova. Erlang. F #. Forth. Fortran. Gambas. Jít. Báječný. HAL / S. Haskell. Ikona. Jáva. JavaScript. Předpeklí. Lua. MATLAB. Objekt Pascal. Cíl-C. OCaml. Oz. Oberon. Analyzátor. Pascal. Perl. PHP. PowerBASIC. PureBasic. Krajta. PL / 1. Prolog. Rubín. Scala. Systém. Pokec. SQL. PL / SQL. Tcl. Vala. Visual Basic. VB.NET

Akademický:

Čistý. Kari. Logo. ML. Modula-3. ODPOVĚĎ. Simula. Seznam instrukcí IEC61131-3. SVATÝ. FBD. Žebříkový diagram (LD). SFC

Esoterický:

HQ9 + / HQ9 ++. INTERCAL. Brainfuck. Brainfork. Befunge. Malbolge. Piet. Lžíce. Unlambda. Mezery. NEPRAVDIVÉ

Ostatní:

ALGOL. ALGOL 68. Modula-2. Mirando. Naděje

Například psaní programu v jednom programovacím jazyce bude trvat poměrně dlouho, ale konečným výsledkem bude kompaktní váha a rychlý program. To je velmi důležité při řešení složitých výpočetních problémů nebo při velkém množství dat. Psaní programu v jiném jazyce bude mnohokrát rychlejší, ale jeho provedení bude pravděpodobně trvat déle, velikost souboru s interpretovaným (spustitelným) kódem bude větší.

Napíšme například jeden jednoduchý program v jazyce C a Python. Funkčnost programu je následující: uživatel zadá digitální číslo označující měsíc, program musí zobrazit odpovídající název měsíce ve verbální podobě.

C kód:

#include int main (void) (int month; month u003d 13; while (month! u003d 0) (places ("Enter number number (to exit, enter 0):"); scanf ("\ n% d", & month ); if ((month u003du003d 12) || (month u003du003d 1) || (month u003du003d 2)) (printf ("Winter \ n \ n");) if ((month u003du003d 3) || (month u003du003d 4) || (month u003du003d 5)) (printf ("Spring \ n \ n");) if ((month u003du003d 6) || (month u003du003d 7) || (month u003du003d 8)) (printf ("Léto \ n \ n");) if ((měsíc u003du003d 9) || (měsíc u003du003d 10) || (měsíc u003du003d 11)) (printf ("Podzim \ n \ n ");) if (měsícu003e 12) (printf (" Žádný takový měsíc neexistuje. \ n \ n ");)) printf (" Program je dokončen. :) \ n "); návrat 0; )

Kód Pythonu (možnost 1):

# - * - kódování: utf-8 - * - měsíce u003d 13 zatímco měsíce: tisk ("Zadejte číslo měsíce (pro ukončení zadejte 0):") měsíce u003d int (vstup ()) if (měsíce u003du003d 12 nebo měsíce u003du003d 1 nebo měsíce u003du003d 2): tisk („zima“) elif (měsíce u003du003d 3 nebo měsíce u003du003d 4 nebo měsíce u003du003d 5): tisk („jaro“) elif (měsíce u003du003d 6 nebo měsíce u003du003d 7 nebo měsíce u003du003d 8): tisk ("Léto") elif (měsíce u003du003d 9 nebo měsíce u003du003d 10 nebo měsíce u003du003d 11): tisk ("Podzim") else: tisk ("Pro ukončení zadejte" 0 " ")

Kód Pythonu (možnost 2):

# - * - kódování: utf-8 - * - month u003d (12: „zima“, 1: „zima“, 2: „zima“, 3: „jaro“, 4: „jaro“, 5: „léto“ , 6: „Léto“, 7: „Léto“, 8: „Léto“, 9: „Podzim“, 10: „Podzim“, 11: „Podzim“) i u003d 13 zatímco i: tisk („Zadejte číslo měsíce ( pro ukončení zadejte 0): ") i u003d int (input ()) if ((iu003e 0) and (i< 13)): print(month[i]) elif (i > 12): print („Tento měsíc neexistuje. Program ukončíte zadáním„ 0 “.) Jinak: print („ Program je dokončen. “)

Pythonský kód (možnost 3):

Tisk ("Zadejte číslo měsíce (pro ukončení zadejte 0):") m u003d 13, zatímco m! u003d 0: m u003d int (input ()) print (["Zima", "Jaro", "Léto", "Podzim" "] [((m + 1)% 11) // 3])

Psaní kódu v C trvá déle, musíte přemýšlet o použitých typech proměnných, ale výstupem je kompaktní program. Vzhledem k tomu, že překladač převádí napsaný C kód do binárního formátu.

V Pythonu můžete psát stejný program mnohokrát rychleji, ale nakonec dostaneme program, jehož spuštění trvá trochu déle a má větší interpretovanou velikost souboru. Samozřejmě existují speciální překladače, které překládají kód Pythonu do binárního formátu. Ale toto je samostatné téma pro srovnání :)

Jak vidíte, počet jazyků je velký a každý rok je jich více. Technologie pochodují mílovými kroky a rychle zastarávají as nimi i některé programovací jazyky. Z tohoto důvodu se programátoři musí učit nové jazyky s novými technologiemi. Existují jazyky, které existují a vyvíjejí se 20–25 let. Například C a Python.

Určete, které parametry ovlivňují výběr programovacího jazyka

Volba směru. Aplikované nebo webové programování

Aplikované (systémové) programování - Toto je programování hardwaru, systémů na poměrně nízké úrovni. V tomto směru hodně záleží na prostředí (OS - operační systém). Můžete se vyvíjet od OS, ovladačů až po jednoduché a složité vlastní programy... Jinými slovy, můžete psát, co chcete. Vzhledem k tomu, že existuje mnoho závislostí, je třeba si nejprve promyslet, pro který OS bude software vyvíjen. Hlavní jazyky pro programování systému jsou Assembler, С, С ++, Python, Perl, Java.

Webové programování - v zásadě to znamená vývoj všeho, co souvisí s internetem. Jedná se o weby, blogy, skripty, konstruktory, systémy pro správu obsahu atd. Neexistuje prakticky žádná závislost na operačním systému, ale existuje řada dalších závislostí souvisejících například s prohlížeči a jinými programy. Ve většině případů se při programování na webu používá operační systém Linux, na kterém se programový kód provádí. Prohlížeče, ve kterých se zobrazuje výsledek spuštěného programu, mohou být cokoli a na libovolném OS, který aktuálně existuje. Je tedy možné vyvinout jeden kód, který poběží pouze na jednom OS, ale může být spuštěn a použit jakýmkoli uživatelem na jakémkoli OS.

Hlavní webové programovací jazyky jsou Python, PHP, Perl, JS, Ruby, Java. Syntax. Jak vypadá jazyk Všichni lidé jsou jiní, mají různé chutě a je nemožné potěšit každého najednou. Proto i když je kód napsán rychleji v jiném jazyce, nemusí to být pro člověka výhodou, protože při každém psaní kódu bude mít znechucení ze syntaxe. Někteří lidé mají rádi syntaxi používající závorky a uvozovky více, jiní nemají závorky. Proto stojí za to zkusit několik napsat jednoduché programy jako „Ahoj světe!“ v různých programovacích jazycích, abyste interně určili, co vám více vyhovuje. Existuje příležitost kontaktovat guru nebo přítele, který již programuje Je velmi obtížné studovat něco sami, zabere to dost času a nejčastěji to vede ke katastrofálním výsledkům. Abyste nebyli opuštěni v počáteční fázi, je nejlepší, když je poblíž někdo, kdo již studuje nebo zná jeden programovací jazyk. Protože v procesu učení vyvstává mnoho otázek, na které je těžké najít odpověď. Pokud existuje pomoc, proces učení se stává zajímavějším a mnohem produktivnějším. Závislost na stanoveném cíli Pouhé učení se programování je nepochopitelný úkol, který pravděpodobně nepřinese pozitivní výsledek. Musí existovat cíl, kterého chcete dosáhnout. Může to být například program pro zpracování fotografií, ovládání robota projíždějícího bludištěm, psaní konkrétního ovladače, zdokonalování existujícího programu, který používáte, vytváření vlastních webových stránek. Když si stanovíte cíl, pochopíte, čeho chcete dosáhnout. Zbývá vybrat nástroje pro řešení problému. Současně, pokud si nastavíte vzrušující cíl, který probudí zájem, nenechá vás v noci spát, bude vás pozitivně motivovat k realizaci a dosažení pozitivního výsledku. Práce pro konkrétní společnost Existují lidé, kteří vědí, že chtějí pracovat v určitých velkých společnostech a přitom být IT specialistou. Seznam volných pracovních míst můžete vidět na webových stránkách zájmových společností. Na volná místa jsou psány požadavky, jaké technologie a nástroje by měl příslušný odborník znát. Pro ty, kterým záleží na počtu nul v platu;) Nedoporučuji se zavěšovat na konkrétní špičková pracovní místa. Na jedné straně je to dobrý referenční bod. Na druhou stranu se musíte snažit být nenahraditelným zaměstnancem, být prvotřídním specialistou ve svém oboru. Takže můžete zvládnout obtížné úkoly, které nikdo jiný nedokáže. Lepší je naučit se všechno, co můžete. Postupem času přijde porozumění a zkušenosti, které vám poskytnou náskok před ostatními kandidáty.

Rozhodli jsme se naučit nový programovací jazyk Python

Proč Python? Koneckonců, existuje mnoho dalších jazyků, modernějších, které jsou nyní považovány za tradiční. Například - Ruby.

Pokud odpovíte na otázky podle dříve vypracovaného plánu, bude volba zřejmá.

Bylo pro mě těžké se rozhodnout, dokud jsem nevytvořil plán. Potřeboval jsem jazyk, který by nejlépe vyhovoval mnoha parametrům najednou. Například ze zájmu naučit se něco nového, vést programovací kruh ve škole, vést robotický a robotický programovací kruh ve škole, vytvořit si vlastní web, napsat hru se studenty. Výsledkem je, že programování systému a webu je smíšené. Vzhledem k tomu, že se ve škole hlavní důraz kladl na robotiku a informatiku, začal jsem si vybírat jazyky s důrazem na programování aplikací a jednoduchost. Jelikož můj první programovací jazyk byl Pascal, líbilo se mi všechno, co se blížilo Pascalově syntaxi. Na základě toho, že mám více než 10 let zkušeností v IT, vím, jak používat vyhledávání, fóra, pak jsem nezdůrazňoval, že v okolí není žádný guru. Sám mohu odpovědět na mnoho otázek. Hlavní věc je mít po ruce jazykový odkaz a internet. Pokud znáte základy programování dobře, umíte skládat algoritmy, pak v praxi stačí vzít odkaz na jazyk a napsat kód. Jediný pozměňovací návrh. Vybral jsem si jazyk, který je starý mnoho let. Mít spoustu kvalitní dokumentace, připravené moduly a být komerčně zajímavý. Moje cíle nebyly jen motivující, ale supermotivující a kopající. Vytvořte robota a program, vytvořte web, na který budete nahrávat materiály a výsledky, začněte učit studenty a připravte se předem na vedení tříd. Ukázalo se, že jsem si stanovil cíl kontrolní body... Tam, kde jsem povinen vykonat část své práce, jinak neuspěju nejen já, ale i studenti. Práce v předních společnostech mě teď nezajímá. Vzhledem k tomu, že jsem touto fází již prošel. Chci vytvářet vlastní projekty, učit děti. Jsem spokojen s tím, co je. Pokud se ale podíváte na nejlepší společnosti, Python používá spousta lidí. Platy programátorů v Pythonu jsou vysoké. To znamená, že studenti, kteří se naučili Python, budou moci získat vynikající práci ve velkých společnostech.

Výsledkem bylo, že po filtrování zůstal pouze jeden Python. Jelikož je ideální pro řešení všech výše uvedených úkolů, je pro studenty snazší se ho naučit, lze jej tedy použít k vývoji webových stránek, skriptů, programování robotů, vývoji hraček, psaní kompaktního kódu a jeho syntaxe připomíná Pascal. Tento jazyk je více než 20 let starý, má vynikající dokumentaci a mnoho připravených knihoven. Pokud v některých případech schopnosti Pythonu nestačí, bude možné přidat funkčnost do C.

První program v Pythonu vypadá takto:

Tisk („Hello world!“) # Nic víc. To je celý kód spolu s komentářem.

Ve srovnání s Pascalem, C, C ++, PHP, velmi stručné a expresivní.

Různé programovací jazyky a jejich oblasti použití. Přednáška v Yandexu

Rozhodli jsme se věnovat náš první letošní příspěvek velmi základnímu tématu, jehož přednáška proběhla v Small SHAD. Zapojují se do nich studenti středních škol, kteří se zajímají o technologie, proto je jejich specifika specifická - přednáška bude zajímavá zejména pro ty, kteří teprve začínají programovat a přemýšlejí o tom, jakým směrem se vyvíjet. Pro ně má Yandex kurz „Úvod do programování (C ++)“, který lze absolvovat na platformě

Přednášející Michail Gustokashin - kurátor akademických programů ve společnosti Yandex, ředitel Centra pro studentské olympiády, Fakulta výpočetní techniky, HSE. Michail připravil desítky vítězů a držitelů cen Všeruských programových olympiád.

V rámci přednášky je řeč o tom, co jsou programovací jazyky, jak se liší, jak se objevily a které z nich jsou lepší a které horší. Na začátku si povíme něco o historii jazyků - jak se objevily, jak lidé začali programovat, jak se všechno vyvinulo, co se děje nyní. Druhá část se dotkne toho, pro jaké úkoly je vhodný jazyk, jak si „vybrat svůj oblíbený jazyk a užívat si života“. Lektor také trochu promluví o tom, jak se podle jeho názoru toto všechno naučit a poté získat práci.

Jako vždy je pod řezem podrobný přepis přednášky, abyste se mohli orientovat v jejím obsahu.

Historie programovacích jazyků

Jak usnadnil život? Místo toho, abychom si pamatovali, že pro příkaz existuje nějaký „magický“ kód, byly použity nejrůznější slova podobná „lidské“ angličtině - nějaká add nebo mov - a poté registry nebo paměťové oblasti, proměnné, se kterými je potřeba provádět operace. Je ale jasné, že to obecně vyžadovalo také dostatečně velké množství psychické zátěže, abychom měli na paměti, v jakém registru máme, co leží, kde jaké proměnné a co se obecně děje. Proč se to stalo? Protože počítače byly „hloupé“ a nedokázaly pochopit nic „chytřejšího“. Ve skutečnosti kompilace strojového kódu z assembleru také vyžaduje čas, paměť (v té době toho samozřejmě nebylo moc).

Postupně se ukázalo, že je velmi obtížné vyvinout tak velké složité programy. Produktivita programátora v těchto příkazech byla extrémně nízká - to znamená, že psal několik řádků denně (smysluplné) a každý řádek ve skutečnosti nedělal nic - některé jednoduché aritmetické operace. A lidé chtěli, aby se jazyky mnohem více podobaly lidskému jazyku, zejména angličtině, aby bylo psaní programů snazší a pohodlnější. A jdeme!

Staré a mrtvé jazyky

Jiné jazyky - nyní napíšu jednu věc, o které jste pravděpodobně slyšeli, ale pouze při všech událostech, kde se hovoří o historii programování - to je COBOL. Byl to jazyk pro psaní obchodních aplikací. Co jsou obchodní aplikace? Jakékoli transakce v bankách, něco jiného, u200bu200bto vše bylo napsáno v Kobolu. U nás to samozřejmě není příliš populární. Myslím, že na Kobole v Moskvě těžko najdete programátora. A někde ne v Moskvě - s ještě většími obtížemi. Překvapivě však ještě před 10 lety byla více než polovina veškerého kódu napsaného lidstvem napsána v Cobolu. A dosud se významná část všech bankovních transakcí provádí pomocí programů v ní napsaných (COBOL) a lidé na ně stále něco píší.

Existuje také „zábavný“ jazyk, jmenoval se Algol (68. verze, která charakterizuje rok jejího vzniku). Je to algoritmický jazyk. Obecně tam něco dokázali, ale nyní nás příliš nezajímá, co mohou dělat. A na tomto může být dokončena naše exkurze do starověku a do relativně nepoužívaných jazyků a přejít k tomu, co ještě žije (a aktivně žije).

Staré, ale živé jazyky

ZÁKLADNÍ. Možná, že někteří lidé na to stále něco píší, alespoň jsem viděl, že v některých institucích učí na QBasic - takové modré okno, kde je napsáno „1989“. Obecně žije „s mocí a hlavně“! Byl vynalezen jako jazyk pro neprogramátory. V té době byl programátor tak velmi specializovanou profesí. A tady vám říkají: „Tady máme skvělý základní jazyk a každý rozumný člověk si do něj vezme a napíše program - snadno“. Tento BASIC a moderní BASIC je opět obrovský rozdíl. Všechny tyto řádky s číslováním každých 10, nejrůznější GOTO a další hrůzy - nemají nic společného s moderním BASICem a dokonce mají málo společného s BASIC 89.

Dalším zábavným příběhem je jazyk Pascal, který je široce známý v univerzitních kruzích, zejména v Rusku a zemích bývalého Sovětského svazu. Bylo a je překvapivě používáno jako vyučovací jazyk... Ve zbytku světa je to méně běžné, ale je to také živé a zdravé. Existuje takový člověk Wirth - tady je vědec, teoretik. Zúčastnil se diskuse o Algolovi, nelíbilo se mu, co se stalo, a přišel s vlastním jazykem - Pascal. A pak borlandská firma (a předtím i mnoho dalších firem - zejména Apple) zapojila a zničila všechno. Měl nádhernou teorii, štíhlou - „všechno bude v pořádku“ - a vzali a nacpali tam, co lidé potřebují pro práci. No, nevyšlo to tak pěkně, jak chtěl.

A nakonec,. Xi vynalezli inženýři. Pokud Pascala vynalezl vědec, pak C vynalezli Kernighan a Ritchie, pracovali jako inženýři v Bell. Jak se to stalo? V té době nebylo možné v těchto jazycích napsat nic systémového (přednášející ukazuje na Fortran, COBOL, Algol). Co je to „systémové“? Například operační systém, některé ovladače, něco jiného. Tyto jazyky byly pro matematické výpočty, pro obchodní výpočty, pro všechno. A všechno ostatní bylo napsáno v Assembleru. Existovaly některé jazyky, které jsou nyní mrtvé, to znamená, že jazyk C se neobjevil okamžitě od Assemblera, ale prostřednictvím několika mezilehlých věcí.

Co je podstatou? Kernighan a Ritchie si rádi hráli na hračku Asteroids - létá kosmická loď a existují asteroidy, střílí na ně a rozpadají se. Měli server, na který hráli, ale bylo tam hodně lidí a hračka byla pomalá. A někde ve své kanceláři zjistili, že mají nějaký počítač, který nikdo nepoužívá. Ale nastal problém - byl jiné architektury a hra byla napsána v Assembleru.

Přepsali to, samozřejmě, dokonce omezili některé funkce, aby na tom mohli hrát. To je ale vedlo k myšlence, že přepisování nové architektury pokaždé není moc chytré. A rozhodli se napsat jazyk na vysoké úrovni, který by byl vhodný pro programování systémů, tj. Ve kterém by bylo možné spravovat paměť, ve kterém by bylo možné pochopit, kde co je a jak přistupovat k těmto částem paměti. A tak se objevil jazyk C. který měl na všechno později obrovský dopad. Všichni (lektor poukazuje na Algol, Fortran a další zmíněné jazyky) měli velký vliv, ale C - ano ...

Proto to byl hlavní jazyk Unixu - operační systém, který byl v té době ještě populárnější než nyní. A zhruba v 80. letech byla situace podobná (lektor ukazuje v základních, C a dalších zmíněných jazycích). Řekněme, že to všechno už umřelo na mazané (lektor vymaže odkazy na Assembler, Fortran a Algol) ... A v 80. letech se počítače zmenšily, chytřejší, levnější a lidé chtěli nejrůznější zvláštnosti, aby žili ještě lépe, žili ještě zábavnější.

Jazyky pocházející z 80. let

C ++ byl původně vytvořen jako sada dodatků k jazyku C, které by usnadnily vývoj. V té době se stalo módou objektově orientované programování a lidé se rozhodli, že všechno lze popsat ve formě hierarchie, to znamená, že máte míč (abstraktní), zdědíte z něj fotbalový míč, volejbal, další abstraktní míč. Tehdy bylo v módě, že „teď píšeme všechno ve formě hierarchie a všechno bude v pořádku, život se zlepší, všechno bude v pořádku a všechno.“ C ++ v jistém smyslu implementoval tento objektový přístup - nebyl to první objektově orientovaný programovací jazyk, ale stal se docela populárním a začaly se v něm objevovat nejrůznější funkce. Současně si C ++ zachovalo téměř úplnou kompatibilitu (v té době) s jazykem C, program napsaný v C v 99% případů byl úspěšně kompilován jako C ++ a dokonce fungoval stejným způsobem. To mělo usnadnit migraci z C do C ++.

Kromě přístupu k objektu (v C ++) se rychle objevila knihovna standardních šablon (STL). Myslím, že ve škole ti, kteří Pascala stále učili, zjistili, že nejprve jste tam neměli vestavěné třídění (ve starém, modrém Borlandském Pascalu, nyní již existuje v moderní verze) - existuje příklad (zdroj) třídění, můžete jej zkopírovat a vložit. Ale pokud zde chcete řadit celá čísla, zde chcete reálná čísla a zde jsou řetězce, které lze navzájem srovnávat, museli jste napsat tři různé druhy, které dělají přesně to samé, mají pouze různé datové typy. To není moc dobré a šablony, které se okamžitě neobjevily v C ++, tento problém výrazně usnadnily. To znamená, že jste měli abstraktní program, který úspěšně třídil něco, co lze navzájem porovnávat.

Skriptovací jazyky z 90. let

Pojďme si je trochu projít, protože se jedná o konkrétní věci a nyní se používají na mnoha místech. Jaký je nápad? Pokud nebudeme kompilovat, pak může být povoleno mnohem více. Například program se může podívat na svůj kód a nějak jej použít; ví, co se v ní děje, a díky tomu může dělat spoustu zajímavých věcí.

Perl byl navržen pro zpracování textu - v té době už bylo v počítačích tolik paměti, že tam bylo možné nacpat nějaký text a udělat s tímto textem něco užitečného (například počítat slova, hledat nějaké). Ale podle mého názoru to navrhli lidé, kteří byli trochu mimo, protože o něm existuje takový vtip: "Jakákoli sada napsaných znaků je správný program v Pearl." Podle mého názoru na něj můžete jen psát, nemůžete to číst. Když se podívám na kód v Perlu a pokusím se něčemu porozumět, ničemu nerozumím. Možná kdybych ho znal lépe, něčemu bych rozuměl, ale jak jsem slyšel od lidí, kteří stále vědí, jak, říkají, že je snazší přepsat znovu. To znamená, že programy jsou krátké a opravdu snazší je přepsat, než zjistit, co tam je, a opravit to.

V té době, v polovině 90. let, se objevil internet. Zpočátku to byla pošta, stránky se statickým HTML, ale lidé tam chtěli přidat nějakou dynamiku, aby se pro nás všechno dynamicky dělo, mohly být vyplňovány některé formuláře, knihy návštěv a něco jiného. V souladu s tím to vyžadovalo nějakou interakci, přišli s protokolem, jak to interaguje, a co je nejdůležitější, generování těchto statických (podmíněně) stránek, které budou uživateli „vyplivnuty“ v reakci na jeho žádost.

Obecně se v té době nic jiného než Pearl nehodilo. Byl to špatný nápad psát obslužnou rutinu v čistém C nebo C ++. A pro nedostatek lepšího jazyka v té době (a dostatečně dlouhý) byl Pearl populárním jazykem pro vývoj webových aplikací. Rozsah samozřejmě není srovnatelný s tím, co se děje nyní.

PHP vzniklo jako ... náhodou. Jeden člověk to rychle přestal dělat - udělal nějakou vlastní stránku, ano kniha návštěv některé, něco jiného, u200bu200bněkteré věci. A pro Pearl napsal sadu nějakých maker, která vypadala jako C, protože věděl, jak používat C, jednoduše proto, že to pro něj bylo tak výhodné. A nazval jsem to Personal HomePage. Sdíleno a řečeno: „Lidi, podívejte se, jaký kousek jsem napsal, všechno je tu mnohem jasnější než na Pearl a dá se upravovat.“ A lidem se to líbilo.

Potom pouzdro upustil. Výsledkem bylo, že toto PHP začalo obecně žít a postupem času se stalo mnohem populárnějším než Perl. Ale toto jeho „porodní trauma“ (myšlenka jako sada maker pro Pearl) na něj hrálo docela krutý vtip. Jazyk se ukázal být divný. To znamená, že se to vyvinulo samo, nikdo to nenavrhl, nikdo nespravoval vývojový proces (ani společnost, ani žádná osoba), ale bylo mnoho skupin, z nichž každá viděla, co se jim líbí. Výsledkem je, že tamní funkce se nazývají jinak, neexistuje ani styl, vše je podtrženo, obecně jsou nastavení zde a tam a jak to všechno bude fungovat, není příliš jasné. Ale můžete si sednout a psát v PHP za dvě hodiny, protože tak to zamýšlel.

Python a Ruby: Ruby je nyní méně populární, Python je o něco lepší „cut“, promluvme si o tom později. Je jasné, že v té době to byly (lektor ukazuje na Perl, Python, Ruby, PHP) vysoce specializované jazyky pro vysoce specializované účely. Obecně v té době v nich nebylo napsáno žádné programování systému, žádná obchodní logika a nyní toho moc nedělají.

Zkompilované jazyky z 90. let

Obecně má C ++ mnoho nevýhod. Kvalifikace programátora musela být vysoká, aby bylo možné psát v C ++, a takoví programátoři byli nákladní (jak příprava, tak něco jiného, u200bu200bto znamená, že je obtížné najít programátory na trhu, musí platit hodně, obecně to tak není ... ). A naše počítače počítají stále rychleji, zlevňují se, lidé kupují nové počítače a chtějí více aplikací, více hraček pro telefon, obecně - více radosti.

Takto se objevila Java (Java). Tam také souvisí poměrně zábavný příběh, jak se název objevil v tomto jazyce. Existují programátoři, neustále pijí kávu a v té době bylo v módě pít kávu, která rostla na ostrově Jáva. Jazyk byl koncipován jako jazyk pro vestavěné spotřebiče, zejména pro kávovar. Tak vyšlo jméno ...

Co s ní začalo, co bylo na ní dobré a proč si získala tolik popularity? Nejprve se úplně zbavili Sishnyho dědictví. Žádné ukazatele, mnohem méně způsobů, jak vystřelit část těla a rozbít všechno. Zadruhé představili mnohem novější myšlenky, pokud jde o objektový model - to znamená, že C ++ se objevil mnohem dříve než Java a používal archaičtější „divoký“ objektový model. No, tady (přednášející ukazuje na Javu) to už tehdy bylo promyšlenější a teoreticky si lidé mysleli, a v praxi aplikovali a dělali všechno mnohem chladněji.

A nakonec třetí. Naše programy Java nebyly shromažďovány do strojového kódu, ale do kódu pro virtuální stroj. To znamená, že jste měli virtuální stroj JVM (VM) - Javovsky. Vaše programy byly shromážděny v jakémsi mezilehlém zastoupení a poté byly pomocí tohoto stroje již provedeny. Co to udělalo? Zaprvé to zpomalilo a zadruhé strašnou silou sžíralo paměť, zatřetí to bylo přenosné kdekoli (teoreticky) - dokonce i do kávovaru, dokonce do mlýnku na kávu, dokonce do počítače, dokonce i do mobilního telefonu. Na jedné straně je to dobré, to znamená, že jste právě napsali implementaci virtuálního stroje a poté spustíte své programy Java všude. Ale na druhou stranu je špatné, že stejný telefon měl v té době málo paměti, byl nízký výkon a to vše navíc začalo otupovat a zpomalovat.

Ani to však není hlavní důvod, proč byl jazyk obecně vynalezen. Jazyk Java byl vynalezen, aby se snížily požadavky na kvalifikaci programátorů. To znamená, že chudší programátoři umí psát dobré programy v Javě, protože vám neumožňuje psát špatné programy - neexistuje žádný způsob, jak psát špatné programy. Můžete tam psát pouze dobře programy. V porozumění tvůrců jazyka.

To znamená, že pokud v C, v C ++, v Pythonu, na čemkoli, můžeme z našeho projektu rozpustit nějaký druh strašidelného skládky odpadu, kde máme vše promíchané, shromážděné celé hodiny a tam něco jiného. V Javě můžete také odpadkový koš rozpustit, ale k tomu již musíte vyvinout určité úsilí. To znamená, že se ve výchozím nastavení neukáže jako „hromada koše“, nastanou další problémy, že se tam něco zdědilo nebo zdědilo - obecně se získá deset nepříliš smysluplných řádků pro jeden smysluplný řádek. Na druhou stranu, možná takový středně zdatný programátor dokáže napsat docela kvalitní kód.

Jsme téměř na konci. Další věcí, která se u nás objevila, je .Net (dosáhne), zejména nás zajímá C # (téměř stejné [lektor ukazuje na Javu], to znamená, že existují rozdíly v detailech, pokud si mezi nimi vyberete - podívejte se, kde zaplatit více peněz).

A ještě jedna věc je JavaScript. Nemá s tím nic společného jazyk Java, se objevil ve stejném roce - slovo bylo módní, měli licenci ochranná známkapoužít.

Co je hlavní věcí, které je třeba věnovat pozornost? (Lektor kreslí šipky z C ++ do Java, .Net, C #, JavaScript a PHP). Chcete-li napsat jednoduchý program v jednom z těchto jazyků a v mnoha dalších - pokud znáte C ++, obvykle nepotřebujete vědět nic jiného - vezmete a píšete v C ++ a poté na začátku přidáte dolary, něco jiného udělejte malé věci a začne to pro vás fungovat na čemkoli (lektor ukazuje na jazyky, ke kterým byly přiřazeny šipky z C ++). To znamená, že jsou si extrémně podobné v některých jednoduchých věcech. Pokud řešíte nějaké školní problémy, vzdělávací úkoly nebo něco jiného (nepřipravujete velký projekt - máte jeden soubor, který čte čísla, zobrazuje čísla v konzole, dělá něco jiného), pak mezi nimi není téměř žádný rozdíl jazyky. Je jasné, že JavaScript a PHP jsou specializované, mají všechno trochu jinak. A tady (přednášející ukazuje na Java a C #) je obecně velmi malý rozdíl.

Od té doby se objevily nejrůznější další zajímavosti, ale není jasné, zda budou úspěšně žít nebo zemřít. Co teď používají, pro jaké úkoly?

Výběr jazyka v závislosti na úkolu

Programování na nízké úrovni

Webové programování

Pro skriptovací část - to znamená, co se stane na straně klienta - je to JavaScript. A někdy je JavaScript generován v jiném jazyce a odeslán (stává se, že je generován skript ... protože někdy je snazší zvládnout některé změny v logice tímto způsobem).

Překvapivě je napsán v PHP - a Facebooku a mnoha dalších velkých projektech. Samozřejmě jsem musel psát své vlastní věci, aby to stále fungovalo dobře, a ne jako by byl proveden „tyap-blooper“, ale oni to udělali. V zásadě nezáleží na tom, do čeho píšete, ale Perl nedoporučuji. Tady a teď samozřejmě pro web nikdo nepíše nic od začátku. Každý píše nějaký rámec nebo něco. Internetový obchod? Stáhli jsme si rámec pro internetový obchod - to je ono, napsali jsme internetový obchod.

Obchodní programování

Programování pro armádu, letectví a kosmonautiku

Možná Java? Zdá se, že je tam všechno docela spolehlivé a architektura je dobrá, žádné divoké typy, žádná přebytečná paměť. Řekněme, že nastal nejdůležitější okamžik a naše Jáva se rozhodla pro nás sbírat odpadky. Musíme přistát, zpomalit a ona říká: „Ne, odpadky jdou.“ Obecně také ne moc dobré.

Abych byl upřímný, dal bych přednost tomu, aby byl tento program napsán v Pascalu. Pascal se mi samozřejmě moc nelíbí, ale nějak by to v takových věcech bylo super.

Používání několika jazyků najednou pro vývoj softwaru

Co dělají lidé při vývoji některých aplikací, dokonce i velkých,? Berou a píší prototyp v Pythonu (jak vše bude fungovat), skicují, přemýšlejí o nějaké architektuře. Psaní na něm je opravdu velmi rychlé - hodili prototyp, experimentovali s ním a řekli: „Páni! To je tak hustý! " A úplně přepsán. Zdálo by se, že práci zvládli dvakrát, trvalo to dvakrát tak dlouho (no, jeden a půl). Ale ne! Často se ukazuje, že tato metoda není špatná, protože pokud hned napíšete něco, například v Javě, a pak se rozhodnete: „Ne, refaktorujte, změňte úplně architekturu a to všechno,“ pak strávíte 10krát více času ... Takové věci také existují a žijí.

Podmínky úspěchu libovolného programovacího jazyka

Ještě jedna věc. Americká armáda je také požádala, aby vyvinuli skvělý jazyk, ve kterém vše funguje a vše bude možné psát. Výsledkem je poněkud obludný jazyk zvaný Ada, ve kterém však stále něco píší, ale znovu - pouze pro armádu.

Co je za problém? Proč trh převzaly některé jazyky jako Python, který ho zpočátku nepodporovala žádná společnost. PHP, které je také špatně navrženo, převzalo trh (většinu) samo o sobě. A všelijaké miliardy dolarů byly investovány (lektor ukazuje na Adu) a nikam nechodily, nic se nestalo. Jaký je důvod? To je způsobeno skutečností, že kolem těchto jazyků není infrastruktura. To znamená, že jazyk může být vynikající, ale pokud neexistuje dokumentace, pokud neexistuje komunita, která by mohla odpovídat na otázky (na Stack Overflow), a konečně nejdůležitější je, že pokud není velký počet knihoven, jazyk se nespustí. To znamená, že jste například chtěli napsat web na Oberonu. Co je to, proč ne? A zmatek začíná ... Na Oberonu nemůžete nastavit svůj webový server, abyste mohli lehce otestovat, nemůžete připojit žádné knihovny, protože nejsou na Oberonu. A to vše se děje prostřednictvím jakýchsi berlí, síly odcházejí a obecně pliváte a píšete své webové stránky v čistém C místo Oberona. A ty jazyky, které jsou schopny používat knihovny z jiných jazyků, žijí dobře. Stejný Python na místech, kde zpomaluje. Obecně jsou v C psány nejrůznější standardní věci, jako je třídění a něco jiného, u200bu200ba on (Python) ví, jak s nimi komunikovat.

Java má také nativní rozhraní Java. Toto je v podstatě C, to znamená, že tam (podle mého názoru to chtějí neustále zakázat, ale zdá se, že to ještě nezakázali) mohou tyto jazyky interagovat s existujícími knihovnami (hlavně sishnyskými). A díky tomu berou a pracují. Pochopte myšlenku, kterou se vám snažím sdělit, že? Nepište v jazycích, které neumí připojit knihovnu C. Pokud si chcete užít něco skvělého. No a postupně (jazyky) získávají vlastní infrastrukturu. A žijí nějak dobře.

Programovací jazyk a kariérové u200bu200bporadenství

Pokud chcete psát, možná ne nejzajímavější aplikace v životě, ale je skvělé, když je navrhnete, přemýšlíte o tom všem a vyděláte spoustu peněz za posezení a nudu po většinu času (za to musíte platit, pokud jste slečna), tady jsou - Java, .Net. Jdete do banky, píšete, do devíti jdete do práce v bílé košili, dostanete dobrý plat a píšete podle doporučení nejlepších zdrojů Java, .Net-ovce a všeho ...

Pokud chcete psát nějaké aplikace, prohlížeč, nějaké hračky, něco jiného, u200bu200bpak je C ++ skvělý. Pokud chcete psát webové stránky, zde jsou jazyky, které si vyberete (lektor ukazuje v Perlu, Pythonu, PHP, Ruby), není velký rozdíl. Jediná věc je, že PHP zemře před Pythonem, takže pokud jste líní učit se nové věci, pak se naučte Python. Nezaznamenáte velký rozdíl, ale vydržíte déle.

Nejasné je také to, co se děje s Ruby. Můžete také použít PHP, pokud jste se již naučili, protože jsou tak jednoduché, že jejich učení se netrvá tak dlouho.

A konečně existuje další oblast použití programovacích jazyků - to je situace, kdy je používá neprogramátor. Řekněme, že jste matematik, fyzik, chemik, analytik, kdokoli, a potřebujete něco rychle spočítat, analyzovat nějaká data (například pro biology, kolik arktických lišek žije na ostrovech velitele). To vše můžete vložit do tabulky v Excelu nebo s něčím analyzovat. Python se k tomu také dobře hodí, ví, jak pracovat s textem a knihovny jsou plné všeho druhu, statistické a tak. Pokud chcete udělat nějaký druh strojového učení, zpracovat nějaká data, předpovědět, pak se to nyní také dělá nejrychleji v Pythonu. Je však třeba poznamenat, že úkoly se velmi liší. Například pokud chcete okamžitě obchodovat na burze v podmínkách, kdy se nabídky neustále mění, pak bez ohledu na to, jak cool Machine Learning píšete v Pythonu, lidé, kteří to mají napsané v něčem rychlejším, budou mít čas si vše koupit dříve, zatímco budete počítáni, i když jejich algoritmy budou horší. I tyto úkoly strojového učení (některé z nich) tedy vyžadují vysoký výkon (a extrémně vysoký) a podle toho i další jazyky.

Jediný způsob, jak zjistit, co chcete, je vyzkoušet všechno. Nyní to řeknu jako jednu z vizí, jak můžete vyzkoušet všechno. Jak se stát programátorem a šťastným? Tak. Začínáme od nuly. Zde studujete ve škole matematiku, ruský jazyk a další povinné a volitelné předměty a vaše znalosti v oblasti programování se v tuto chvíli projeví na tabuli (lektor ukazuje na prázdnou tabuli). A chcete se stát šťastným člověkem, dělat to, co máte rádi, vydělat spoustu peněz a nepopírat si nic a být šťastný.

Jeden způsob, jak to udělat. Samozřejmě existují nejrůznější inspirativní příběhy o lidech, kteří vůbec nechodili na univerzitu nebo je opustili a stali se z nich miliardáři, vlastníci společností atd. Je však třeba poznamenat, že většina lidí, kteří se možná nestali miliardáři, ale také žijí dobře, v určitém okamžiku univerzitu absolvovali.

Jaká je naše situace s přijetím na vysokou školu (nyní studuješ na škole)? Když jste ve škole, musíte pochopit, že dalším krokem je registrace a péče o ni. Složit zkoušku nebo vyhrát olympiádu. Na zkoušku můžete použít Pascal, C ++ (včetně čistého C), Python (nebudu je dále zmiňovat). Na olympiádě - stejný Pascal, stejný C ++, stejný Python (o jeho problémech si nyní povíme) a nejčastěji Java. V závislosti na olympiádě se stále může stát cokoli, ale ne podstata.

Jaký je graf distribuce jazyků na Všeruské olympiádě v informatice? Lidé, kteří se účastní všeruské, nejúžasnější olympiády, o čem píší? Vypadá to takto (tady to znamená Pascal a tady je to asi 2000 a tady asi nula, tady je C ++ a tady je to 2015).

V roce 2000 téměř nikdo nepsal v C ++. Uplynulo patnáct let a téměř nikdo nepíše v Pascalu, přestože je Pascal moderní. Toto je jazyk, který umí téměř všechno stejně. Je to jen to, že každý začal být příliš líný, aby se to naučil, každý nový trend a každý dál píše v Borland Pascal, což samozřejmě nemůže nic dělat. V C ++ lidé píší některé třídicí algoritmy (STL) - skvělé, napsali sort () a je to. Na Pascalu, na pravidelném, na starém - to je problém. Napsali nějakou sadu (potřebnou) - skvěle, napsali ji v C ++, v Pascalu jsou trápení zase nepřetržitá. Na nových Pascalech to samozřejmě můžete udělat, ale ve skutečnosti stojí peníze. Možná jste si toho nevšimli, ale je to tak.

Existuje také Java, ale Java má spoustu písmen. Je to pro velké projekty, ale pro malé jednorázové programy se ukazuje jako docela špatné, protože existuje spousta písmen navíc. Ale také někteří lidé píší, můžete se na to naučit psát. Ale na zkoušce to tak není a zkouška bude z větší části stále ještě třeba.

Co je nejlepší pro zkoušku? Pro zkoušku je nejlepší (pokud nic nevíte a ve škole vás nic nenaučí) naučit se Python. Některé úkoly na zkoušce jsou na něm dokonale vyřešeny. Na olympiádě se obecně ukázalo, že C ++ je (používá se), protože Python je velmi pomalý, ne všechno je tam vyřešeno.

Studovali jste tedy nějakou malou podmnožinu jazyka a některé algoritmy (možná) a vyřešili jste spoustu problémů, abyste získali diplom z olympiády a na univerzitu získali vysokoškolské vzdělání.

Nyní vám povím o tom, jak my v HSE vytváříme kurz, v jakém pořadí jsou jazyky, jak se vyučují v aplikované matematice a informatice na Fakultě aplikovaných věd, které Yandex a já děláme. V prvním semestru - Python (ne v plném rozsahu, o tom, jak byste se měli učit ve škole) a C ++ (širší, mnohem širší, než se ve školách obvykle vyučuje). Hned vám řeknu, abyste se nebáli, když to najednou chcete udělat, řekněte: „Proč, to všechno už vím, proč budu někde studovat? Raději půjdu někam jinam. “ Pro ty, kteří již umí dobře programovat, je zde možnost jít přímo na studium algoritmů a na poměrně teoretický výcvik. Nyní se na ně nedíváme, toto (ukazuje na tabuli) je pro ty, kteří programují médium nebo vůbec.

V prvním semestru studují základy jazyka Python, jen aby se lidé mohli naučit programovat a aby se nikdo zvlášť neurazil. Python se na školách vyučuje jen zřídka, většinou lidé mají znalosti jazyka Pascal nebo C ++. V podstatě dokonce Pascal, pokud je to masová škola. Aby se nikdo neurazil, každý se učí nový jazyk (jako by byl za stejných podmínek). A C ++ jednoduše proto, že z C ++ pak můžete jít kamkoli.

Poté přichází kurz „Algoritmy“ a samostatný projekt kurzu. Klasické algoritmy s implementací. Teoreticky jsme něco nebrali, spočítali jsme složitost. Na přednášce jsme vzali, vypočítali složitost, na semináři - vzali, implementovali algoritmus. Projekt je student, který dělá něco hotového. Například jeden z projektů byl: počítat ... Řekněme, že máte v Moskvě spoustu bytů a rozumíte: „Ach, mám spoustu zbytečných věcí, nějaké si pronajmu. A stanovili cenu a nikdo si od vás nechce za něco pronajmout byt - pravděpodobně příliš drahý. Nebo stanovili cenu, okamžitě ji sundali a vy si pomyslíte: „Ach, asi jsem ji předal levně“ - a taky se rozčílíte. To znamená, že bylo nutné vypočítat, kolik stálo pronájem bytu? Řídíte data - vytváří pro vás odhad. Takový web, který se skládal z několika věcí: vzít návrhy, analyzovat, použít nějaký druh algoritmu strojového učení (pravděpodobně) nenáročný a vytvořit krásnou webovou tlamu, ve které si můžete něco vybrat, něco řídit, několik metrů, libovolný počet pokojů, počet saun, počet vířivek ve vašem bytě a zhruba odhad nákladů. To je nějaká hotová, ne příliš komplikovaná věc. Tady to znamená (lektor ukazuje kurz algoritmů) tak energický C ++ s konzolovými I / O. Tady (lektor ukazuje na nápis „projekt“) je něco pod vedením mentora, možná s databázemi, možná s analýzou textů a s něčím jiným.

Poté přichází třetí semestr, kurz s názvem „Počítačové systémy“. Existuje spousta assemblerů k pochopení (velmi málo) a pak něco podobného čistému C a interakci s operačními systémy, v podstatě programování systému. A projekt pro seminář je také něco na téma všech síťových interakcí, docela nízkoúrovňové: vyvinout nějaký nástroj, například rsync (synchronizace, možná víte. V čistém C, víceméně napsat analogii rsync, kterou budete mít po síti synchronizovat složky se všemi přístupy k souborům atd.).

A nakonec čtvrtý. Ani nevím, jak to nazvat, je to taková vinaigretta technologií nezbytných pro skutečný vývoj, například pro vývoj webu. To znamená, že se jedná o praktickou aplikaci databází, opět něco podobného tomu, co bylo provedeno v projektu (lektor ukazuje na projekt 2. kurzu), ale hlouběji. To znamená, že takové víceméně konkrétní věci jsou již praktickým programováním. Souběžně s tím existuje nějaká teorie, dobře, zde se také zabývají vědou.

A po dvou kurzech se lidé rozcházejí, aby dělali to, co je zajímá, protože tato věc pokrývá poměrně široce takové základy programování a lidé v tuto chvíli již chápou, že to dělat nechtějí počítačové systémy v žádném případě (nelíbilo se jim například systémové programování), ale chtějí se vypořádat s některými teoretickými algoritmy, obtížností počítání, vymýšlením nových věcí, distribuováním nebo něčím jiným. Nebo si naopak myslí, že toho tu moc nemají ( lektor ukazuje na první kurz kurzu v Pythonu a C ++) tak jdi ( lektor ukazuje na třetí linii kurzu s programováním systému) - jak se vám nelíbí, počítejte bajty a nastavujte nejrůznější omezení pro čtení a zápis, provádění streamů, vláken a něco jiného. A v souladu s tím si lidé zvolí nějaký směr a učí se. To je v zásadě proto, aby se u vás nevyvinul „syndrom káčátko“ - nejprve jste viděli svého Pascala a nyní řeknete „Pascal je síla“; nebo pokročilejší - viděli jste C ++ a začali jste o každém říkat, že C ++ je silný a všechno ostatní není moc dobré.

Zde se na to musíme podívat (lektor ukazuje na seznam kurzů na tabuli) v širším smyslu - jedná se o jednu z metod, která byla zvolena, zejména na HSE (ta se nedávno objevila, takže je docela moderní). Existují i u200bu200bjiné způsoby, jak se setkat. Na jiných dobrých univerzitách v mírně odlišném pořadí a jiných akcentech. Ale také se snaží lidi seznámit se vším, co mají.

Jak programátor hledá práci

Co by bylo skvělé? Nejprve nějaký open source projekt, který jste napsali od začátku do konce. Je žádoucí, když dělám nějakou infrastrukturu, aby bylo možné data rychle číst, nebo něco jiného, u200bu200bpak bych samozřejmě měl zájem, aby mi byl napsán něco open source. Není to web, ale něco na toto téma. Proč mě to zajímá? Dokážu se podívat na váš kód, vidím, jak často jste se dopustili, vidím, jak jste reagovali na chyby od uživatelů, chyby od vývojářů, kteří to používají - všechno je zapsáno, dívám se na všechno a přemýšlím: „Páni, tato chyba tu není už dva roky uzavřeno, zde jste uživateli odpověděli nezdvořile, zde je něco jiného - neberu to “. To znamená, že toto je váš osobní projekt.

Dále, co jiného by bylo skvělé? Rád bych viděl, jak se ti povedlo týmová práce... To znamená, že za mnou přijdete na pohovor a řeknete: „Chlapi z univerzity a já jsme podali dobrou žádost. Vytvořil jsem tam databázi, udělali něco mobilní aplikace, a také tam pro nás pracoval chlap, návrhářka, chlapec na technické podpoře. Bylo nás pět a provedli jsme skvělý projekt. “ No, vidím, jaký je ve skutečnosti váš projekt, říkám: "Jaký je váš?" Podívám se na kód znovu a chápu, že víte, jak pracovat v týmu s lidmi.

Programátor není ten, kdo sedí sám (takhle indie) v garáži, někde se zhasnutými světly, s nikým nemluví, nenapadne si vousy a píše. Přesto existuje určitá interakce s lidmi. Například se šéfem, který na vás někdy může nadávat (šéfové, jsou takoví, ne vždy laskaví). A vidím, že víte, jak pracovat s lidmi, a dělá mi radost, když máte nějaký dobrý tým. I když to není dobré, je to lepší než nemít to.

Co jiného bych osobně chtěl? Pokud jste se ukázali ve velkých projektech. Například jste se zavázali k linuxovému jádru, pokud děláte programování systému, opravili jste nějakou chybu. To znamená, že ukázali, že můžete přečíst kód někoho jiného a můžete v něm provést nějaké změny. Dívám se: „Ach, opravdu jsi přišel na něco komplikovaného a opravil jsi nějaké chyby!“ A začínám se z toho radovat. Protože mám ... no, já nevím ... takže můj programátor skončil, protože konkurenti mu nabídli vyšší plat a já naléhavě potřebuji někoho zavřít - vy. Vypadám, že jste psali jen od nuly, ale nevíte, jak číst a upravovat kód někoho jiného, u200bu200ba rozčiluji se.

Konečně, v závislosti na konkrétní pozici, existují různé další věci. Pokud jste analytikem práce, byl bych rád, kdybyste provedli úkoly analýzy dat na Kaggle. Pokud získáte práci na některých algoritmických věcech, byl bych rád, kdybyste provedli nějaké algoritmy ve sportovním programování. A konečně, pokud jste o této profesi přemýšleli, přečtěte si, jak probíhají pohovory, setkali jste se s tím, že tam někteří lidé vyjadřují velkou nespokojenost: „Přišel jsem a ptají se mě, jaké je moje hobby. Sedím jako sova a neodpovídám, protože nemám koníčka, “a myslí si, že to HR dělá. Ve skutečnosti se snaží zjistit, jak jste přátelští a vhodní. Pokud jste nepřátelští a nedostateční, pak bez ohledu na to, jak geniální a workoholik jste, tvrdý odborník se skvělými znalostmi, bude pro vás tým obtížné s vámi spolupracovat a nevytáhnete projekt sám. Navíc, i když se protahujete, dokážete si představit, jaké zatížení je pro společnost. A že přijdete zítra a řeknete: „Zvyšte můj plat 10krát, jinak vás opustím.“ Je zřejmé, že společnosti se do této situace nechtějí dostat. Proto je výchova k přiměřenosti a dobré vůli v sobě stejně důležitá (přinejmenším) jako rozvoj některých odborných dovedností.

Stručně řečeno, co na to můžete říct? Které jazyky jsou dobré a které špatné? Ve skupině jazyků, například mezi Ruby, Pythonem a PHP, který si vybrat? Správnou odpovědí je samozřejmě Python, ale ve skutečnosti je rozdíl mezi nimi v počtu povolených chyb, v množství něčeho jiného - 5%, no, možná 10%. To znamená, že pokud již máte hotový projekt napsaný v PHP, pak nikdo s rozumem neřekne: „Přepíšeme vše v Pythonu.“ Řeknou: „Najmeme více vývojářů PHP a pokračujme v psaní v PHP.“ Skvělé, to není špatná volba. Je jasné, že pokud najednou začnete psát projekt, může být moudré zvolit Python hned. I když to také záleží. Možná máte na trhu spoustu levných vývojářů PHP, ale pythonoví jsou drahí a myslíte si: „Ano, technologie je chladnější, ale ušetřím peníze na hotových vývojářích.“ A to je všechno, skvělé, už tam přijdete a pracujete.

Jak si mohu vybrat mezi Javou a C ++? Ano, stane se totéž. Myslím si, že než se rozhodnete, ve kterém jazyce zahájíte nový velký projekt, získáte znalosti ve svém profesním oboru a budete se moci správně rozhodnout. Právě teď se nemusíte rozhodovat, a proto vám doporučuji, abyste dělali, co se vám líbí.

Základy, jak jsem již řekl, samotné základy programování (co je funkce, jaké jsou if, for's, pole, něco jiného) lze naučit víceméně v jakémkoli jazyce. Například v C ++, protože to vypadá jako spousta věcí, a jeho specifika (na této úrovni) jsou nejméně ze všech a písmena jsou nejméně zbytečná k psaní. No, pak, když se naučíte nějaké složité architektonické věci, učte se a nemusíte se s tím moc starat. To znamená, že hlavní věc je - zkuste hledat, co se vám líbí, a když si uvědomíte, že už jsou 4 hodiny ráno, a sedíte pro zábavu a píšete, protože se vám to líbí - pravděpodobně v tuto chvíli najdete své ...

PROGRAMOVÁNÍ JAZYKA A JEHO TYPŮ

Programovací jazyk je formální znakový systém pro psaní počítačových programů. Programovací jazyk definuje sadu lexikálních, syntaktických a sémantických pravidel, která definují vzhled programy a akce, které bude vykonávat (počítač) pod jeho kontrolou.

Programovací jazyk na vysoké úrovni je programovací jazyk určený pro rychlost a snadné použití programátorem. Hlavním rysem jazyků na vysoké úrovni je abstrakce, to znamená zavedení sémantických konstruktů, které stručně popisují takové datové struktury a operace na nich, jejichž popisy ve strojovém kódu (nebo jiném nízkoúrovňovém programovacím jazyce) jsou velmi dlouhé a obtížně srozumitelné.

Nízkoúrovňový programovací jazyk (nízkoúrovňový programovací jazyk) je programovací jazyk blízký programování přímo ve strojových kódech použitého skutečného nebo virtuálního (například Java, Microsoft .NET) procesoru. Mnemonická notace se obvykle používá k označení strojových pokynů. To vám umožní zapamatovat si příkazy nikoli ve formě posloupnosti binárních nul a jedniček, ale ve formě smysluplných zkratek slov v lidském jazyce (obvykle anglicky).

NÍZKÉ ÚROVNĚ PROGRAMOVACÍ JAZYKY

První počítače musely programovat pomocí binárních strojových kódů. Programování tímto způsobem je však poměrně pracný a komplikovaný úkol. Pro zjednodušení tohoto úkolu se začaly objevovat nízkoúrovňové programovací jazyky, což umožnilo nastavit strojové instrukce v lidsky čitelnější podobě. Pro jejich převod do binárního kódu byly vytvořeny speciální programy - překladatelé.

Obr. 1. Příklad strojového kódu a jeho reprezentace v sestavě

Překladatelé se dělí na:

překladače - přemění text programu na strojový kód, který lze uložit a poté použít bez překladače (příkladem jsou spustitelné soubory s příponou *. exe); tlumočníci - přeměňte část programu na strojový kód, proveďte a poté přejděte k další části. V tomto případě je tlumočník použit pokaždé, když je program spuštěn.

Příkladem nízkoúrovňového jazyka je montáž. Nízkoúrovňové jazyky jsou zaměřeny na konkrétní typ procesoru a berou v úvahu jeho zvláštnosti, proto k přenesení programu v montážním jazyce na jinou hardwarovou platformu musí být téměř úplně přepsán. Existují určité rozdíly v syntaxi programů pro různé překladače. Je pravda, že centrální procesory pro počítače od AMD a Intel jsou prakticky kompatibilní a liší se pouze v některých konkrétních týmech. Ale specializované procesory pro jiná zařízení, například grafické karty, telefony, obsahují významné rozdíly.

Výhody

Nízkoúrovňové jazyky se používají k vytváření efektivních a kompaktních programů, protože vývojář získává přístup ke všem funkcím procesoru.

nevýhody

Programátor pracující s nízkoúrovňovými jazyky musí být vysoce kvalifikovaný, musí dobře rozumět struktuře mikroprocesorového systému, pro který je program vytvářen. Pokud je tedy vytvořen program pro počítač, musíte znát strukturu počítače a zejména zařízení a vlastnosti jeho procesoru; výsledný program nelze přenést do počítače nebo zařízení s jiným typem procesoru; významná doba pro vývoj u velkých a složitých programů.

Nízkoúrovňové jazyky se zpravidla používají pro psaní malých systémových programů, ovladačů zařízení, modulů pro rozhraní s nestandardním vybavením, programování specializovaných mikroprocesorů, kdy nejdůležitějšími požadavky jsou kompaktnost, rychlost a schopnost přímého přístupu k hardwarovým prostředkům.

Assembler je nízkoúrovňový jazyk, který je dodnes široce používán.

JAZYKY NA VYSOKÉ ÚROVNI

Je uvažován první programovací jazyk na vysoké úrovni počítačový jazyk Plankalkül, vyvinutý německým inženýrem Konradem Zuseem v období 1942-1946. Překladatel pro něj však neexistoval až do roku 2000. Prvním překladatelem jazyků na vysoké úrovni na světě je PP (Programovací program), aka PP-1, úspěšně testovaný v roce 1954. Překladatel PP-2 (1955, 4. na světě) překladač) již optimalizoval a obsahoval vlastní zavaděč a debugger, knihovnu standardních postupů a překladač PP pro počítače Strela-4 již obsahoval linker z modulů. Široké používání jazyků na vysoké úrovni však začalo vznikem Fortranu a vytvořením překladače pro tento jazyk (1957).

Jazyky na vysoké úrovni se snaží nejen usnadnit řešení složitých programovacích problémů, ale také zjednodušit portování softwaru. Použití různých překladačů a tlumočníků umožňuje programům napsaným v jazycích vysoké úrovně komunikovat s různými operačními systémy a hardwarem, přičemž jejich zdrojový kód zůstává v ideálním případě beze změny.

Tento druh izolace jazyků vysoké úrovně od hardwarové implementace počítače má kromě mnoha výhod i nevýhody. Zejména to neumožňuje vytváření jednoduchých a přesných pokynů k použitému zařízení. Programy psané v jazycích vysoké úrovně jsou pro programátora snáze srozumitelné, ale méně účinné než jejich protějšky psané v jazycích nízké úrovně. Jedním z důsledků toho bylo přidání podpory pro jeden nebo druhý jazyk nízké úrovně (montážní jazyk) v řadě moderních profesionálních programovacích jazyků na vysoké úrovni.

Příklady: C, C ++, C #, Java, Python, PHP, Ruby, Perl, Pascal, Delphi, Lisp ... Jazyky na vysoké úrovni mají schopnost pracovat se složitými datovými strukturami. Většina z nich má integrovanou podporu pro typy řetězců, objekty, operace I / O souborů atd. Nevýhodou jazyků vyšší úrovně je, že programy jsou větší než programy v jazycích nízké úrovně. Proto se jazyky vysoké úrovně používají hlavně pro vývoj softwaru počítačů a zařízení, která mají velké množství paměti. A různé podtypy assembleru se používají k programování dalších zařízení, kde je kritická velikost programu.

Imperativní jazyky jsou založeny na několika důležitých myšlenkách, včetně reprezentace akcí ve formě matematických vzorců, konceptu datového typu a věty o strukturální transformaci.

Program v imperativním jazyce je sestaven z funkcí (podprogramů). Programy montážních jazyků se mohou skládat také z podprogramů, což není nic nového, ale jazyky na vysoké úrovni vám umožňují nemyslet na takové problémy, jako je organizace hovorů, přenos počátečních dat a návrat výsledků. Popis funkce se skládá z názvu, seznamu parametrů (počátečních dat), typu výsledku a akcí vedoucích k přijetí tohoto výsledku. Jedna z funkcí programu je hlavní, jeho provádění je prací programu.

Jednoduchým příkladem je funkce, která vypočítá sinus čísla. Lze jej nazvat sin, jeho počáteční data se skládají z jednoho reálného čísla, výsledkem je také reálné číslo získané sečtením segmentu známé nekonečné řady (nebo provedením příkazu fsin matematického koprocesoru).

Sada akcí, které lze provést uvnitř funkce, je velmi omezená. Skládá se z výpočtu výrazů vzorce, volání jiných funkcí (což není samostatná akce - volání funkce je často zahrnuto do výrazu), přiřazení, větvení (skupina akcí, která se provádí pouze v případě, že je splněna určitá podmínka) a smyček (skupina akcí provedených vícekrát, počet opakování závisí na nějaké podmínce). Akce mohou být vnořeny do sebe navzájem. Může se zdát, že sada větví a smyček je příliš malá, ale není. Je prokázáno, že jakýkoli algoritmus složený z funkčních bloků (na nízké úrovni - aritmetické příkazy a příkazy pro přenos dat), podmíněné a bezpodmínečné přechody lze transformovat do ekvivalentního algoritmu složeného pouze ze strukturovaných podmíněných bloků - funkčních bloků, větví a smyček s konec. Toto prohlášení bylo formulováno v příspěvku Corrada Bohma a Giuseppe Jacopiniho „Vývojové diagramy, turingové mašiny a jazyky pouze se dvěma pravidly formování“ (Sdělení ACM, svazek 9 / číslo 5 / květen, 1965).

Pokud potřebujete někde uložit průběžné výsledky, abyste mohli provést nezbytné akce, uvnitř funkce se umístí speciální popisy obsahující názvy proměnných a případně další informace. Adresy buněk RAM jim budou přiřazeny automaticky. Některé jazyky také obsahují definice konstanty a typu v rámci funkcí. V jazycích podobných Pascalu je funkce jako program a může obsahovat definice nejen konstant, typů a proměnných, ale i dalších funkcí.

Deklarace dat je seznam pojmenovaných objektů. Tyto objekty se nazývají proměnné. V řadě jazyků musí být nastaven typ proměnné, která určuje množství paměti potřebné k jejímu umístění a sadu operací, kterých se může účastnit. To však nemusí nutně platit, existují jazyky, ve kterých není typ proměnné specifikován a mohou se během provádění programu měnit.

Programovací jazyky obvykle poskytují poměrně omezenou sadu předdefinovaných typů proměnných a způsob vytváření nových typů. Některé z následujících typů jsou předdefinovány:

přirozené a celé počty různých velikostí; reálná čísla; symboly - písmena, číslice, znaky aritmetických operací atd .; řetězce znaků; booleovské hodnoty; ukazatele

Akce s daty lze provádět pomocí funkcí a operátorů.

Například v jazyce C nejsou definovány symboly, řetězce a logické hodnoty. Jeho typ char je ve skutečnosti krátké celé číslo a může být aritmetický.

Nové typy vznikají kombinací několika prvků stejného typu do jednoho celku (pole, každý jeho prvek má pořadové číslo) nebo prvků různých typů (struktura, každý jeho prvek má svůj vlastní název). Například ve většině jazyků nejsou komplexní čísla definována, ale lze je definovat:

V některých jazycích (například v C ++) lze operátory definovat také pro vytvořené typy, což umožňuje používat proměnné těchto typů stejným způsobem jako proměnné předdefinovaných typů.

Existují i u200bu200bjiné způsoby, jak vytvořit nové typy. Například v Pascalu je možné vytvořit:

typy rozsahů (zadáním rozsahu hodnot); typy výčtu (výčtem možných hodnot); typy sad

Proměnné sad typů lze použít k ukládání informací o sadě vlastností některých objektů. Něco takového lze provést pomocí celočíselných proměnných, jejichž bity jsou nastaveny tak, aby indikovaly přítomnost odpovídajících vlastností. Zdá se, že používání sad je odolnější vůči chybám programátoru.

2) Co je stránka programovacího jazyka 2

3) Jaké jsou programovací jazyky pro s. 3

4) Jaké jsou tam programovací jazyky str. 4 - 7

5) Co je překladač a tlumočník strana 8

6) Seznam použité literatury str

Úvod

Do poloviny šedesátých let byly počítače příliš drahé stroje, používaly se pouze pro speciální úkoly a prováděly pouze jeden úkol najednou (tzv. dávkové zpracování).

Programovací jazyky této doby, stejně jako počítače, na kterých byly použity, byly vyvinuty pro konkrétní úkoly, jako je vědecká práce na počítači. Protože stroje byly drahé a současně byl prováděn pouze jeden úkol, byl čas stroje drahý, takže rychlost provádění programu byla na prvním místě.

V šedesátých letech však cena počítačů začala klesat, takže si je mohly dovolit i malé společnosti; rychlost počítačů se zvýšila a nastal čas, kdy často začali nečinně pracovat bez úkolů. Aby tomu zabránili, začali zavádět systémy dělení času (sdílení času).

V takových systémech byl čas procesoru „krájen“ a všichni uživatelé po sobě trvali krátká období této doby. Stroje byly dostatečně rychlé, takže výsledkem bylo, že každý uživatel v terminálu měl pocit, že pracuje sám. Stroj byl zase méně nečinný, protože nevykonával jeden, ale mnoho úkolů najednou. Sdílení času drasticky snížilo náklady na strojový čas, protože jeden stroj mohl sdílet stovky uživatelů.

Za těchto podmínek - když se energie stala levnou a dostupnou - začali tvůrci programovacích jazyků stále více přemýšlet snadnost psaní programy, nejen rychlost jejich provádění. „Malé“ (atomové) operace prováděné přímo strojními zařízeními byly spojeny do větších operací na vysoké úrovni a celých struktur, díky nimž je pro člověka mnohem jednodušší a pohodlnější pracovat.

Co je to programovací jazyk

Programovací jazyk - formální znakový systém navržený k popisu algoritmů ve formě, která je pro umělce vhodná (například počítač). Programovací jazyk definuje sadu lexikálních, syntaktických a sémantických pravidel používaných při sestavování počítačového programu. Umožňuje programátorovi přesně určit, na jaké události bude počítač reagovat, jak budou data ukládána a přenášena a také jaké akce by s nimi měly být za různých okolností provedeny.

Od vytvoření prvních programovatelných strojů už lidstvo vynalezlo více než dva a půl tisíce programovacích jazyků. Každý rok je jejich počet doplňován novými. Některé jazyky zná jen malý počet jejich vlastních vývojářů, jiné jsou známé milionům lidí. Profesionální programátoři někdy při své práci používají více než tucet různých programovacích jazyků.

Tvůrci jazyků interpretují koncept odlišně programovací jazyk ... Mezi komunitami míst uznávaných většinou vývojářů patří:

Funkce: programovací jazyk je určen pro psaní počítačových programů, které se používají k přenosu instrukcí do počítače za účelem provedení konkrétního výpočetního procesu a organizace řízení jednotlivých zařízení.

programovací jazyk je určen pro psaní počítačových programů, které se používají k přenosu instrukcí do počítače za účelem provedení konkrétního výpočetního procesu a organizace řízení jednotlivých zařízení. Úkol: programovací jazyk se liší od přirozených jazyků v tom, že je navržen k přenosu příkazů a dat z osoby do počítače, zatímco přirozené jazyky se používají pouze pro vzájemnou komunikaci lidí. V zásadě je možné zobecnit definici „programovacích jazyků“ - jedná se o způsob přenosu příkazů, příkazů, jasných pokynů pro akci; zatímco lidské jazyky slouží také k výměně informací.

programovací jazyk se liší od přirozených jazyků v tom, že je navržen k přenosu příkazů a dat z osoby do počítače, zatímco přirozené jazyky se používají pouze pro vzájemnou komunikaci lidí. V zásadě je možné zobecnit definici „programovacích jazyků“ - jedná se o způsob přenosu příkazů, příkazů, jasných pokynů pro akci; zatímco lidské jazyky slouží také k výměně informací. Provedení: programovací jazyk může používat speciální konstrukce k definování a manipulaci s datovými strukturami a řízení výpočetního procesu.

K čemu slouží programovací jazyky?

Proces operace počítače spočívá v provedení programu, tj. Sady přesně definovaných příkazů v přesně definovaném pořadí. Strojová forma příkazu, skládající se z nul a jedniček, označuje, kterou akci je třeba provést procesor... To znamená, že chcete-li počítači sdělit posloupnost akcí, které musí provést, musíte určit posloupnost binárních kódů odpovídajících příkazů. Programy strojového kódu se skládají z tisíců pokynů. Psaní takových programů je obtížné a zdlouhavé. Programátor si musí pamatovat kombinaci nul a jedniček binárního kódu každého programu, stejně jako binární kódy datových adres použitých při jeho provádění. Je mnohem snazší napsat program v nějakém jazyce blíže přirozenému lidskému jazyku a svěřit počítači práci s překladem tohoto programu do strojových kódů. Takto se vyvíjely jazyky speciálně pro psaní programů - programovací jazyky.

Je jich mnoho různé jazyky programování. Ve skutečnosti lze k řešení většiny problémů použít kterýkoli z nich. Zkušení programátoři vědí, který jazyk je lepší použít pro řešení každého konkrétního problému, protože každý z těchto jazyků má své vlastní schopnosti, orientaci na určité typy problémů, vlastní způsob popisu konceptů a objektů používaných při řešení problémů.

Všechno mnoho programovacích jazyků lze rozdělit do dvou skupin: nízkoúrovňové jazyky a jazyky na vysoké úrovni.

Mezi jazyky nižší úrovně patří montážní jazyky (od angličtiny po sestavení - shromažďování, sestavování). Jazyk sestavení používá symbolickou notaci pro příkazy, které jsou snadno srozumitelné a rychle si je zapamatují. Místo posloupnosti binárních kódů příkazů se zapisují jejich symbolická označení a místo binárních datových adres použitých při provádění příkazu jsou programátorem vybrány symbolické názvy těchto dat. Sestavovací jazyk se někdy nazývá mnemocode nebo autocode.

Většina programátorů používá k psaní svých programů jazyky na vysoké úrovni. Stejně jako běžný lidský jazyk má i tento jazyk svou vlastní abecedu - sadu symbolů používaných v daném jazyce. Z těchto symbolů jsou složena takzvaná jazyková klíčová slova. Každé z klíčových slov plní svoji funkci, stejně jako v jazyce, na který jsme v našem jazyce zvyklí, mohou slova složená z písmen abecedy daného jazyka plnit funkce různých slovních druhů. Klíčová slova jsou ve větách navzájem propojena podle určitých syntaktických pravidel jazyka. Každá věta definuje určitou posloupnost akcí, které musí počítač provést.

Jazyk na vysoké úrovni hraje roli prostředníka mezi člověkem a počítačem a umožňuje člověku komunikovat s počítačem známějším způsobem. Tento jazyk vám často pomůže vybrat správnou metodu řešení problému.

Před napsáním programu v jazyce vysoké úrovně musí programátor napsat algoritmus řešení problému, to znamená postupný akční plán, který musí být dokončen, aby se tento problém vyřešil. Proto se často nazývají jazyky, které vyžadují předběžnou kompilaci algoritmu algoritmické jazyky.

Jaké jsou tam programovací jazyky

Fortran

Programovací jazyky se začaly objevovat již v polovině 50. let. Jedním z prvních jazyků tohoto typu byl jazyk FORTRAN (FORTRAN od FORmulaTRANslator - překladač vzorců), vyvinutý v roce 1957. Fortran se používá k popisu algoritmu pro řešení vědeckých a technických problémů pomocí digitálního počítače. Stejně jako první počítače byl i tento jazyk určen hlavně pro provádění přírodovědeckých a matematických výpočtů. Ve vylepšené podobě tento jazyk přežil do naší doby. Mezi moderními jazyky na vysoké úrovni je jedním z nejpoužívanějších ve vědeckém výzkumu. Nejběžnější varianty jsou Fortran-II, Fortran-IV, EASICFortran a jejich zobecnění.

ALGOL

Po Fortranu v letech 1958-1960 se objevil jazyk Algol (Algol-58, Algol-60) (anglicky ALGOL od ALGOrithmicLanguage - algoritmický jazyk). Algol byl vylepšen v letech 1964-1968 - Algol-68. Algol byl vyvinut výborem, v němž zahrnuje evropské a americké vědce. Patří k jazykům vysoké úrovně a usnadňuje překlad algebraických vzorců do softwarových příkazů. Algol byl populární v Evropě, včetně SSSR, zatímco srovnatelný Fortran byl rozšířen ve Spojených státech a Kanadě. Algol měl znatelný vliv na všechny později vyvinuté programovací jazyky, a zejména na jazyk Pascal. Tento jazyk, stejně jako Fortran, byl určen k řešení vědeckých a technických problémů. Tento jazyk byl navíc používán jako prostředek k výuce základů programování - umění programování.

Pojem Algol obvykle znamená jazyk ALGOL-60 , zatímco ALGOL-68 považován za samostatný jazyk. I když se jazyk Algol téměř přestal používat pro programování, stále zůstal oficiálním jazykem pro publikování algoritmů.

Cobol

V letech 1959 - 1960 byl vyvinut jazyk Cobol (anglický COBOL od COmmom Business Oriented Language - obecný jazyk zaměřený na podnikání). Jedná se o programovací jazyk třetí generace určený především pro vývoj podnikových aplikací, Cobol byl také určen k řešení ekonomických problémů, zpracování dat pro banky, pojišťovny a další instituce tohoto druhu. Vývojářkou prvního sjednoceného standardu Cobol byla Grace Hopper ( babička Kobola).

Cobol je obvykle kritizován za výřečnost a těžkopádnost, protože jedním z cílů tvůrců jazyka bylo přiblížit stavby co nejblíže anglický jazyk... (Cobol je až dosud považován za programovací jazyk, ve kterém bylo napsáno nejvíce řádků kódu). Zároveň měl Cobol na svou dobu vynikající nástroje pro práci s datovými strukturami a soubory, což mu zajistilo dlouhou životnost v podnikových aplikacích, přinejmenším ve Spojených státech.

Lisp

Téměř současně s Cobolem (1959 - 1960) byl na Massachusettském technologickém institutu vytvořen jazyk Lisp (LISP z LIStProcessing). Lisp je založen na reprezentaci programu systémem lineárních seznamů znaků, které jsou navíc hlavní datovou strukturou jazyka. Lisp je po Fortranu považován za druhý nejstarší programovací jazyk na vysoké úrovni. Tento jazyk je široce používán pro zpracování symbolických informací a používá se k vytváření softwaru, který napodobuje činnost lidského mozku.

Libovolný program Lisp se skládá ze sekvence výrazy (formuláře). Výsledkem práce programu je vyhodnocení těchto výrazů. Všechny výrazy jsou psány jako seznamy - jedna ze základních struktur Lispu, takže je lze snadno vytvořit samotným jazykem. To vám umožňuje vytvářet programy, které upravují jiné programy nebo makra, aby významně rozšířily možnosti jazyka.

Hlavní význam programu Lisp „život“ v symbolickém prostoru: pohyb, kreativita, memorování, tvorba nových světů atd. Lisp jako metafora mozku, symbol, metafora signálu: „Jak se biologická analýza signálů mozkem, jako vnější faktor - fyzikální a chemický vliv, který je pro tělo dráždivý, promění v biologicky významný signál, často životně důležitý, určující veškeré chování člověka nebo zvířete; a jak existuje rozdělení různých signálů na pozitivní, negativní a indiferentní, indiferentní. Signál je již integračním konceptem. Je identifikačním znakem skupiny, komplexních podnětů, vzájemně propojených společnou historií a kauzálními vztahy. V tomto komplexu je systém podnětů, samotný signální podnět. je také základním prvkem a za jiných okolností může jeho role patřit k dalšímu podnětu z komplexu. Signál koncentruje všechny minulé zkušenosti zvířete nebo osoby.

ZÁKLADNÍ

V polovině 60. let (1963) byl na Dartmouth College (USA) vytvořen jazyk BASIC (anglický BASIC z Allpurpose Instruction Code pro začátečníky - univerzální symbolický kód pokynů pro začátečníky). Postupem času, jak se začaly objevovat další dialekty, se tento „původní“ dialekt stal známým jako Dartmouth BASIC. Jazyk byl částečně založen na Fortranu II a částečně na Algolu-60, s dodatky, které usnadňují sdílení času a později zpracování textu a maticovou aritmetiku. BASIC byl původně implementován na sálovém počítači GE-265 s podporou více terminálů. Na rozdíl od všeobecného přesvědčení to byl v době svého vzniku kompilovaný jazyk.

BASIC byl navržen tak, aby studenti mohli psát programy pomocí terminálů pro sdílení času. Byl navržen tak, aby řešil složitost starších jazyků. Byl určen pro „jednodušší“ uživatele, kteří se tolik nezajímají o rychlost programů, ale jednoduše o schopnost řešit problémy pomocí počítače. Vzhledem k jednoduchosti jazyka BASIC začíná mnoho začínajících programátorů s programováním.

Pevnost

Na konci 60. let - počátkem 70. let se objevil jazyk Fort (anglicky ČTVRTÝ - čtvrtý). Tento jazyk se začal používat v kontrolních úkolech. různé systémy poté, co jeho autor Charles Moore na něm napsal program určený k ovládání radioteleskopu arizonské observatoře.

Díky řadě vlastností, zejména interaktivitě, flexibilitě a snadnému vývoji, je Forth velmi atraktivním a efektivním jazykem pro aplikovaný výzkum a vývoj nástrojů. Zřejmým použitím tohoto jazyka jsou vestavěné řídicí systémy. Také najde uplatnění v programování počítačů s různými operačními systémy.

Pascal

Pascalův jazyk, který se objevil v roce 1972, byl pojmenován po velkém francouzském matematikovi 17. století, vynálezci prvního aritmetického stroje na světě, Blaise Pascala. Tento jazyk vytvořil švýcarský počítačový vědec Niklaus Wirth jako jazyk pro výuku programovacích metod. Pascal je univerzální programovací jazyk.

Zvláštností jazyka je přísné psaní a dostupnost strukturálních (procedurálních) programovacích nástrojů. Pascal byl jedním z prvních takových jazyků. Podle N. Wirtha by jazyk měl přispívat k disciplíně programování, proto spolu s přísným psaním Pascal minimalizuje možné syntaktické nejednoznačnosti a samotná syntaxe je intuitivně jasná i při prvním seznámení s jazykem.

Jazyk Pascal učí nejen to, jak správně psát program, ale také jak správně vyvinout metodu řešení problému, zvolit způsoby prezentace a organizace dat použitých v problému. Od roku 1983 je jazyk Pascal zaveden školení informatika na středních školách v USA.

Peklo

Na základě jazyka Pascal na konci 70. let byl vytvořen jazyk pekla, pojmenovaný podle nadané matematičky Ady Lovelace (Augusta Ada Byron - dcera básníka Byrona). Byla to ona, kdo v roce 1843 dokázal vysvětlit světu možnosti analytického motoru Charlese Babbage. Jazyk Hell byl vyvinut na příkaz amerického ministerstva obrany a původně byl určen k řešení problémů s řízením kosmických letů. Tento jazyk se používá v problémech řízení palubních systémů kosmických lodí, systémů pro zajištění životně důležitých funkcí astronautů za letu a složitých technických procesů.

Ada je strukturovaný, modulární, objektově orientovaný programovací jazyk obsahující programovací nástroje na vysoké úrovni pro paralelní procesy. Adina syntaxe je zděděna od jazyků jako Algol nebo Pascal, ale rozšířena a také zpřísněna a logičtější. Ada je jazyk se silnými typy, vylučuje práci s objekty, které nemají žádné typy, a automatické převody typů jsou omezeny na absolutní minimum.

Podle Stephena Zeiglera je vývoj softwaru v Adě obecně o 60% levnější a vyvinutý program má 9krát méně defektů než používání jazyka C.

Si

V posledních desetiletích se objevilo programování, které zaznamenalo výrazný rozvoj objektově orientovaný přístup. Toto je programovací metoda, která napodobuje obraz reálného světa: informace použité k řešení problému jsou reprezentovány jako sada interagujících objektů. Každý z objektů má své vlastní vlastnosti a chování. Interakce objektů se provádí pomocí přenosu zpráv: každý objekt může přijímat zprávy od jiných objektů, pamatovat si informace a určitým způsobem je zpracovávat a zase odesílat zprávy. Stejně jako ve skutečném světě, objekty ukládají své vlastnosti a chování společně a zdědí některé z nich od svých nadřazených objektů.

Objektově orientovaná ideologie se používá ve všech moderních softwarové produktyvčetně operačních systémů.

První objektově orientovaný jazyk Simula -67 byl vytvořen jako nástroj pro simulaci provozu různých zařízení a mechanismů. Většina moderních programovacích jazyků je objektově orientovaná. Mezi nimi nejnovější verze Jazyk Turbo - Pascal , C ++, Ada jiný.

Systémy jsou nyní široce používány vizuální programování Vizuální Základní , Vizuální C ++, Delphi jiný. Umožňují vám vytvářet složité balíčky aplikací s jednoduchým a pohodlným uživatelským rozhraním.

Co je překladač a tlumočník

Nestačí vytvořit jazyk vhodný pro psaní programů. Každý jazyk potřebuje svého vlastního překladatele. Tito překladatelé jsou speciální překladatelské programy.

Překladatel Je program určený k překladu programu napsaného v jednom programovacím jazyce do programu v jiném programovacím jazyce. Proces překladu se nazývá přenos.

Texty zdroje a výsledné programy jsou uloženy v paměti počítače.

Příkladem překladače je překladač.

Překladač Je program určený k překladu programu napsaného v jazyce do programu ve strojových kódech. Proces takového překladu se nazývá sestavení.

Kompilátor vytvoří hotový výsledek - program strojového kódu. Tento program se poté provede. Zkompilovanou verzi původního programu lze uložit na disk. Kompilátor již není potřeba k opětovnému spuštění původního programu. Stačí načíst dříve zkompilovanou verzi z disku do paměti počítače a spustit ji.

Existuje další způsob, jak kombinovat procesy překladu a provádění programu. To se nazývá výklad. Podstata procesu tlumočení je následující. Nejprve je přeložen do strojových kódů a poté spuštěn první řádek programu. Když je provedení prvního řádku dokončeno, začne se překládat druhý řádek, který se poté provede atd. Tento proces je řízen programem tlumočníka.

Tlumočník Je program určený k překladu řádek po řádku a provedení původního programu. Tento proces se nazývá výklad.

Proces překladu zahrnuje kontrolu souladu zdrojového programu s pravidly jazyka použitého v něm. Pokud jsou v programu nalezeny chyby, překladač o nich napíše zprávu do výstupního zařízení (obvykle na obrazovce).

Tlumočník hlásí chyby, které najde po překladu každého řádku programu. To výrazně usnadňuje proces hledání a opravy chyb v programu, ale významně zvyšuje vysílací čas. Kompilátor přeloží program mnohem rychleji než tlumočník, ale nahlásí chyby, které najde poté, co celý program dokončí kompilaci. V tomto případě je obtížnější najít a opravit chyby. Tlumočníci jsou proto určeni hlavně pro jazyky určené pro výuku programování a používají je začínající programátoři. Většina moderních jazyků je navržena pro vývoj komplexních softwarových balíků a je navržena tak, aby byla kompilována.

Překladač a tlumočník někdy mohou používat stejný jazyk. Mezi tyto jazyky patří například BASIC.

Programy překladačů a tlumočníci jsou zpravidla pojmenovány stejně jako jazyky pro překlad, ze kterých jsou určeny. Slova Pascal, Ada, C mohou odkazovat jak na názvy jazyků, tak na názvy příslušných programů.

JIŽNÍ. Kratin. Analýza signálů mozkem. 1975.

Stephen Zeigler. Srovnání nákladů na vývoj C a Ada.

Seznam použité literatury:

1. I.T. Zaretskaya, B.G. Kolodyazhny, A.N. Gurzhiy, A.Yu. Sokolov. Třída informatiky 10-11. - К.: „Fórum“, 2001

2. Berezin BI, Berezin S.B. Základní kurz programování. - M., 1996

3. H.M. Daytel. Jak programovat v S. - M.: „Binom“, 2000

4. Internetová stránka:

5. Vagramenko Ya.A. a další Základy informatiky a informatiky s aplikací v lingvistice: učebnice. příspěvek. - M.: MOPI, 1989.

Leave a Comment