Kontakty

Rôzne programovacie jazyky a ich rozsah. Prednášku v Yandex. Rozšírenie existujúcich programovacích jazykov Rozšírené programovacie jazyky

Zalina 13. januára 2016 o 15:42

Rôzne programovacie jazyky a ich rozsah. Prednáška v Yandex

  • Yandex blog
  • Vývoj webových stránok,
  • Programovanie
  • Priemyselné programovanie

Náš prvý príspevok v tomto roku sme sa rozhodli venovať veľmi základnú tému, prednášku, na ktorej bolo čítané v malom rozvrhu. Zaoberajú sa študentmi stredných škôl, ktorí sú zaujímavé technológie, odtiaľto špecifickosť prezentácie - prednáška bude obzvlášť zaujímavá pre tých, ktorí sa práve začínajú programovať a premýšľať o tom, ako sa vyvíjať. Yandex má pre nich kurz "Úvod do programovania (C ++)", ktorý môže byť odovzdaný na platforme Stepic.org.

Lecturer Mikhail Gustokashin je kurátorka akademických programov YANDEX, riaditeľ Centra pre študentské olympijské hry Fakulty počítačových vedy HSE. Mikhail pripravilo desiatky víťazov a medailistov všetkých ruských programovacích súťaží.

Ako súčasť prednášky je opísaná o tom, aké programovacie jazyky sú, že sa líšia, ako sa objavujú a ktoré z nich sú lepšie, a čo sú horšie. Na začiatku budeme hovoriť trochu o histórii jazykov - ako sa objavili, ako ľudia začali programovať, ako sa všetko vyvinul, čo sa teraz deje. V druhej časti bude ovplyvnená tým, aké úlohy, aký jazyk je vhodný, ako "vybrať si svoj obľúbený jazyk a užívajte si život." Prednášajúci bude tiež trochu o tom, ako, podľa jeho názoru, naučiť sa na to a potom si zamestnať.

Ako vždy, pod rezným dekódovaním prednášok, aby ste mohli navigovať v jeho obsahu.

História programovacích jazykov

Začnime od samého začiatku. Na samom začiatku nemali počítače ani klávesnicu! To znamená, že všetko bolo veľmi zlé - nemali klávesnicu alebo obrazovku, tam boli karty (to sú také veci s otvormi alebo nedostatkom otvorov). V súlade s tým boli kolíky, či tam svieti svetlo. Ak je tu otvor (alebo naopak nie je) - to znamenalo nolik alebo jeden. A programy v tom čase napísali pomocou strojových kódov - každá operácia v počítači (pridanie, odčítanie, niektoré zložitejšie operácie) bol nejaký strojový kód. Ľudia sami si vybrali tento kód na stole, všetky druhy adries v pamäti, všetko bolo vyradené s rukami a dal ho do čitateľa - a to bolo považované za všetko. Samozrejme, práca programátora bola pravdepodobne, potom nie je obzvlášť zaujímavá - robiť diery - a s rozvojom vedy a techniky, samozrejme, začal vymyslieť všetky druhy "zaujímavých" kusov. Napríklad, Asssembler (assembler), ktorý už uľahčil niekoľko životov.

Ako uľahčil život? Namiesto zapamätania, že existuje nejaký "magický" kód z tímu, všetky druhy slov boli použité, podobné "ľudskému" angličtine - niektoré pridať alebo mov - a potom registre alebo pamäťové registre, premenné, s ktorými táto operácia operácie. Je však jasné, že to všeobecne požadovalo aj pomerne veľké napätie mysle, aby sa v mojej hlave, v ktorom register máme, kde to, čo premenné a čo sa deje vôbec. Prečo sa to stalo? Pretože počítače boli "hlúpy" a nemohli pochopiť nič viac "SMART". Vlastne a zbierajte strojový kód z Assembler, tiež si vyžaduje čas, pamäť (pre tie časy to bolo určite málo).

Postupne sa ukázalo, že bolo veľmi ťažké rozvíjať tak veľké komplexné programy. Výkon programátora v týchto tímoch bol extrémne nízky - to znamená, že napísal niekoľko riadkov na deň (zmysluplné) a každý riadok naozaj nerobil nič - niektoré jednoduché aritmetické akcie. A ľudia chceli robiť jazyky oveľa viac ako ľudský jazyk, v angličtine, najmä na písanie programov bolo jednoduchšie a pohodlnejšie. A šiel, šiel!

Staré a mŕtve jazyky

Jeden z prvých jazykov bol FORTRAN. Mimochodom, bol tiež stále vyradený na kaplnky - tam boli špeciálne kaplnky na know out of programov na Fortran. Ale ak teraz beriete tento Fortran - podľa môjho názoru je to ešte niekde medzi 50-60. Objavil sa - a pokúsite sa na to niečo napísať, potom budete veľmi nepríjemní, zaručujem ťa! Moderný Fortran je stále nažive, ale je už úplne odlišný od toho, čo bolo predtým.

Ďalšie jazyky - Teraz napíšem jednu vec, o ktorú ste pravdepodobne počuli, potom len v akomkoľvek udalostiach, kde sa hovorí programovanie o histórii, je COBOL. Bol to jazyk pre písanie obchodných aplikácií. Čo je to obchodná aplikácia? Niektoré transakcie v bankách, niečo iné napísal toto všetko na Cobol. My, zrozumiteľné, nie je veľmi populárne. Myslím, že programátor na Cobol, v Moskve, nájdete s veľkými ťažkosťami. A niekde nie v Moskve - s ešte ťažším. Ale čo je prekvapujúce pred 10 rokmi viac ako polovicu celého kódu, ktorý napísal ľudstvo, bolo napísané na COBOL. A doteraz, významná časť všetkých bankových transakcií prebieha s programami napísanými na ňom (COBOL), a stále na to napíšete.

Tam je tiež "vtipný" jazyk, nazval Algol (68. verzia, ktorá charakterizuje rok jeho stvorenia). Toto je algoritmický jazyk. Všeobecne platí, že tam boli schopní zomrieť, ale teraz nemáme záujem o to, čo vedia. A na tom môže byť naša exkurzia v staroveku a relatívne nevyužité jazyky dokončiť a pokračovať v tom, že stále žije (a aktívne žije).

Staré, ale živé jazyky

Algol bol vynájdený v Európe a Fortran sa používal väčšinou v štátoch - neexistujú žiadne veľké rozdiely. Aký je trend viditeľný? Spočiatku bolo všetko ťažké a napísalo, bolo potrebné byť takmer inžinier, elektrotechnika, pochopiť, kde sú kontakty zatvorené a niečo iné pre programovanie. Potom tiež potreboval sedieť s listami a spočítať pamäť, sledujem ju. A postupne sa pre programátora jednoduchšie uľahčuje, jednoduchšie a ďalej uľahčuje, aby sa programátor uľahčilo - čo najmenej na to, aby ste si mohli urobiť, čo je možné, môže byť vykonaná automaticky. Na konci tohto obdobia (lektor indikuje algol a kobol), začnú sa objaviť jazyky, ktoré v určitom zmysle "žil" do súčasnosti.

Základné. Možno, že ešte niektorí ľudia napíše niečo, aspoň som videl, že v niektorých inštitúciách sa učí na QBASIC 'E - TAKÉ BLUE MODE, KTORÉ JE POTREBNÉ "1989". Všeobecne platí, "Moholwall" žije! Bol vynájdený ako jazyk pre non-programátorov. V tom čase bol programátor taký veľmi špecializovaný povolanie. A tu hovoria: "Máme skvelý jazyk základný a akýkoľvek rozumná osoba bude trvať a napíše program na ňom - \u200b\u200bjednoducho." Opäť platí, že Beysik a moderný Beysik sú obrovský rozdiel. Všetky druhy týchto radov s číslovaním po 10, všetky druhy goto a iného hororu - nemajú žiadny vzťah k modernej Basiku, a to aj na základný z 89. roku, ktoré majú malý vzťah.

Ďalším vtipným príbehom je Pascal, široko známy v univerzitných kruhoch, najmä v Rusku av krajinách bývalého Sovietskeho zväzu. Používa sa a naďalej je prekvapivo ako vzdelávací jazyk. Vstupy zvyšku sveta je smalmarkovaný, ale aj žije a žije. Tam je taký človek wirth - tu je vedec, teoretik. Zúčastnil sa na diskusii o Algoly, nepáčil sa, čo sa stalo, a prišiel s jeho jazykom - Pascal. A potom spoločnosť Borland (a pred tým, že mnohé ďalšie firmy - Apple urobil, najmä), ktoré vzali a pokazili všetko. Mal krásnu teóriu, štíhly - "všetko bude v poriadku," a vzali a plnenia skutočnosť, že ľudia potrebujú pracovať. No, a to bolo tak krásne, ako chcel.

A nakoniec. Si vynašiel inžinieri. Ak sa Pascal prišiel s vedcom, potom Si vynašiel Kernigan a Ritchi, pracovali ako inžinieri v Bell. Ako sa to stalo? V tom čase v týchto jazykoch (prednášajúci indikuje Fortran, Cobol, Algol), nič systémové napísal. Čo je to "systém"? Napríklad operačný systém, niektoré ovládače, niečo iné. Tieto jazyky boli určené na matematické výpočty pre obchodné výpočty, pre všetkých. A všetko ostatné napísal na assembler. Tam boli niektoré jazyky, teraz zomreli, to znamená, že jazyk Xi sa nezdalo okamžite z assemblera, ale prostredníctvom niektorých medziľahlých vecí.

Podstata čo? Kernigan a Ritchi milovali hrať asteroidy hračky - kozmická loď letí, a tam sú asteroidy, strieľa ich a oni sa rozpadnú. Mali server, na ktorom hrali, ale bolo tu veľa ľudí a hračka sa spomalila. A niekde objavili v kancelárii, že majú nejaký počítač, ktorý nikto nepoužíva. Ale bol tu problém - bol ďalšou architektúrou a hra bola napísaná na assembler.

Samozrejme si to prepracovali, dokonca aj vyrezávali vlastnosti nejakého hrávania na ňom. Ale to ich prinieslo na myšlienku, že nie je veľmi šikovný na prepísanie novej architektúry zakaždým. A rozhodli sa písať takýto jazyk vysoký stupeňKtorý bude vhodný pre systémové programovanie, to znamená, v ktorom môžete spravovať pamäť, v ktorej môžete pochopiť, kde-čo lži a ako kontaktovať tieto kúsky pamäte. A tak sa objavil jazyk SI, ktorý mal ešte obrovský vplyv. Všetci sú (lektor ukazuje algol, ďalej a ďalšie uvedené jazyky) mal veľký vplyv, ale tu Si - rovný áno ...

V súlade s tým bol hlavný jazyk v operačnom systéme UNIX, ktorý bol v tom čase ešte populárnejší ako teraz. A okolo 80. rokov, situácia bola nejaká taká taká situácia (lektorka ukazuje na základných, C a iných uvedených jazykoch). Predpokladajme, že toto všetko je už pomaly zomrené (prednášajúci vymaže odkazy na assembler, pevnosť a algaole) ... av 80. rokoch sa počítače stali menej, múdrejšími, lacnejšími a ľuďmi, ktorí chceli, aby všetky druhy zvláštností žili ešte lepšie, žiť sa stal viac zábavy.

Jazyky z 80. rokov

Jedna z prvých zvláštnosti bola C ++. Jazyk C má obrovské množstvo nedostatkov (dobre, veľmi) - všetko je možné urobiť na to všeobecne, vrátane strieľať sami, strieľať sa s fikciou, na inú nohu, strieľať jednu nohu do inej nohy, vo všeobecnosti - čo na urob to. Ale zároveň, niektoré architektonické veci sa tam robia dosť ťažký - opäť, rovnako ako v assembler, musíme nasledovať po celú dobu, kde sme a akú pamäť je pridelená; Je tam celý čas "toky" niekde tejto pamäti - to znamená, že sme pridelili, zabudli sme sa odstrániť, neodstránili ho, vystúpili z pamäte, vo všeobecnosti - som sa pozrel na veľa problémov.

C ++ bol vytvorený najprv ako súbor doplnkov do C, ktorý sa uľahčí rozvíjanie. V tom čase sa módne objektovo orientované programovanie a ľudia rozhodli, že všetko by mohlo byť opísané vo forme hierarchie, to znamená, že ste mali loptu (abstraktné), zdedíte to futbalový loptu, volejbal loptu, ďalšia abstraktná guľa. Potom bolo módne, že "teraz napíšeme všetko vo forme nejakej hierarchie, a všetko bude v poriadku, život bude fungovať, všetko sa stane krásnym a to je všetko." C ++ V istom zmysle bol tento cieľový prístup implementovaný - nebola to prvým jazykom objektovo orientovaného programovania, ale stalo sa dosť populárne a všetky druhy funkcií sa začalo objavovať v ňom. Zároveň C ++ zachovala takmer úplnú kompatibilitu (v tom čase) s jazykom C, program napísal o C 99% prípadov bol úspešný ako C ++ - Naya a dokonca aj pracoval. Bolo zamýšľané, aby sa ľahko prejdilo na C ++.

Okrem prístupu objektov (v C ++) sa rýchlo objavilo Štandardná knižnica šablóny (STL). Myslím, že v škole, tí, ktorí sa stále učili Pascal, zistili, že tam máte, v prvom rade nie je vstavané triedenie (v starodávnom, modrej Borland Pascal, teraz je už v moderných verziách) - je tu príklad (zdroj ) Triedenie, môže byť skopírované a prilepené. Ale ak chcete triediť celé čísla tu, tu chcete, aby ste mali reálne čísla, a tu sú čiary, ktoré možno porovnať medzi sebou, ste museli napísať tri rôzne triedenie, ktoré robí absolútne to isté, len oni jednoducho majú rôzne typy dát. Toto nie je veľmi dobré a šablóny, ktoré sa nedali okamžite objaviť v C ++, tento problém bol výrazne uľavený. To znamená, že ste mali abstraktný program, ktorý je možné porovnať medzi nimi, úspešne zoradené.

Skriptné jazyky od 90-X

Ale čas nestojí na mieste, v 80. rokoch bolo ešte veľa zaujímavých vecí. Ale niekde na prelome 80. rokov a 90s, počítače sa stali tak dobre, že to bolo už možné urobiť veľmi zvláštne a veľmi neefektívne veci. Najmä tieto boli skriptované jazyky, ktoré neboli zostavené do strojového kódu, ale boli interpretované. Aj BEYSIK bol kedy nejaký čas interpretovaný, ale tieto skriptované jazyky boli určené hlavne na spracovanie textov - to, napríklad Perl, Python (to nebolo veľmi slávne), PHP, Ruby - to sú skriptované jazyky To, že v jednom alebo je tu ešte inak (všetci majú čas, aby sa objavili až do roku 2000, dokonca oveľa skôr).

Poďme na nich trochu, pretože sú to špecifické veci a teraz sa používajú mnohí. Myšlienka je čo? Ak nebudeme kompilovať, môžete si dovoliť veľa najviac. Napríklad program sa môže pozrieť na váš kód a nejako ho používa; Vie, čo sa v ňom stane a kvôli tomu môžete urobiť veľa zaujímavých vecí.

Perl bol navrhnutý tak, aby zvládol texty - v tých dňoch už sa pamäť stala toľko v počítačoch, že tam bol nejaký text, aby tam s týmto textom niečo užitočné (napríklad zvážte slová, nejaký druh hľadania). Ale podľa môjho názoru bol navrhnutý ľuďmi, ktorí boli trochu nie sú samy o sebe, pretože tam je taký vtip o ňom: "Akýkoľvek súbor znakov je správny program na perle." Podľa môjho názoru môžete na to písať iba, nie je možné ju prečítať. Keď sa pozriem na kód na Pearl a snažím sa niečo pochopiť, nič nerozumiem. Možno, keby som ho lepšie poznal, chápem niečo, ale ako som počul od tých ľudí, ktorí stále vie, že hovoria, že je ľahšie prepísať znova. To znamená, že programové práce sú krátke a je to naozaj jednoduchšie prepísať znova, než sa zaoberá, čo je tam a opraviť.

Asi v čase, v polovici 90. rokov sa objavil internet. Spočiatku boli pošty, sastiters so statickou html, ale ľudia chceli pridať nejakú dynamiku, aby sa všetko stalo dynamicky, niektoré formy by mohli byť naplnené, hosťovské knihy robiť niečo iné. V súlade s tým, toto vyžadovalo určitú interakciu, prišiel s protokolom, pretože interaguje, a čo je najdôležitejšie, generácia týchto statických (podmienečných) stránok, ktoré budú "napäté" užívateľom v reakcii na jeho požiadavku.

Vo všeobecnosti nič iné ako perla v tom čase nehodila. Write na Pure Si alebo C ++ Rightler bol zlý nápad. A z nedostatku najlepších v tom čase (a dostatočne dlhé) perla bola obľúbená pre vývoj web. Samozrejme, mierka sa nebude porovnať s tým, čo sa teraz deje.

PHP sa objavil ako ... náhodou. Jedna osoba rýchlo prestala robiť - urobila svoju stránku nejaký druh, mal nejakú knihu hostí, nejako, niektoré veci. A napísal súbor makier niektorých pre perly, ktoré boli podobné SI, pretože vedel, ako si Si, jednoducho preto, že bol tak pohodlný. A nazýva sa na osobnú domovskú stránku. Ona zdieľala a hovorí: "Ľudia, uvidia, akú vec som napísal, všetko je tu oveľa jasnejšie ako na perle a môže byť upravil." A ľudia sa im páčili.

Potom túto vec hodila. Všeobecne platí, že nakoniec tento PHP začal žiť a začal s časom oveľa populárnejším ako Perl. Ale toto je jeho "generické zranenie" (nápad ako sada makier pre perál) s ním hral skôr zlý vtip. Jazyk sa ukázal na podivné. To znamená, že sa sám vyvinul, nikto ho nenavrhol, nikto nepodarilo vývojový proces (ani spoločnosť, ani osoba), a tam bolo veľa skupiny, z ktorých každý videl, čo sa im páči. Výsledkom je, že funkcie sa nazývajú inak, aj keď nie je žiadny štýl, všetko je prostredníctvom dôrazu, vo všeobecnosti, ako to padlo, nastavenia tu a tam, a ako to všetko bude fungovať veľmi jasné. Ale môžete si sadnúť a písať za dve hodiny do PHP, pretože si to myslel.

Python a Ruby: Ruby je teraz menej populárny, Python je nejako lepší "zdieľanie", poďme o tom hovoriť. Je jasné, že v tých dňoch to bolo (lektor indikuje Perl, Python, Ruby, PHP) silne špecializované jazyky pre vysoko špecializované účely. Všeobecne platí, že žiadne systémové programovanie, žiadna obchodná logika na nich napísala v tom čase a teraz to nerobí.

Kompilované jazyky z 90. rokov

Ideme o rovnaké časy, ale iným spôsobom. V tom čase sa C ++ použilo takmer pre všetko, čo bolo potrebné napísať nie je pre web, nie na spracovanie textu, ale pre jednoducho aplikácie, pre operačné systémy, pre hračky - všeobecne pre čokoľvek. Ale C ++ je v skutočnosti hrozným jazykom. Prečo? Pretože, po prvé, zdedil kvôli spätnej kompatibilite, všetky problémy SI. Stále by sa mohlo zabiť milión rôznymi spôsobmiTo isté, čo bolo v C (prirodzene, nové metódy v C ++ boli pridané. Zároveň, ak napíšete všetko dobre a správne, ako to bolo koncipované autormi C ++, potom, samozrejme, nebolo možné zabiť so starými cestami, a zdá sa, že je to menšie ako oni. Mal však veľmi zvláštny objektový model zvláštny. Rozdelenie programu na moduloch, na nejakom druhu kusov vôbec vyšlo z SI (ak je, môžete písať na SI alebo na C ++ - v skutočnosti to bolo zamýšľané, ako len vložiť text knižnice do vášho Program, ako výsledok, keď napíšete partiu naklonenia, máte všetko - ak "primitívne", ako to bolo na samom začiatku - všetko je vložené do jedného súboru a potom všetko je strašne zostavené na dlhú dobu, pretože to je strašne kompilované niekoľkokrát ide okolo. Rovnaký Pascal, Wirth, bol v tomto pláne oveľa premyslený, neskoršie verzie sa stali ešte lepšie.

Všeobecne platí, že C ++ má veľa chýb. Kvalifikácia programátora by mala byť vysoká na písanie na C ++, a stojí takýchto programátorov drahé (a prípravy, a niečo iné, to znamená, že nájdenie programátorov na trhu je ťažké, musia zaplatiť veľa, a vo všeobecnosti nie je ...). A naše počítače sú rýchlejšie a rýchlejšie a rýchlejšie, stáva sa lacnejšími, ľudia kupujú nové počítače a chcú viac aplikácií, viac hračiek pre telefón, vo všeobecnosti - viac radosti.

Takže Java sa objavila (Java). Tam je tiež pomerne vtipný príbeh, ako sa názov objavil z tohto jazyka. Existujú programátori, pijú kávu po celú dobu a v tom čase boli módne piť kávu, ktorá na ostrove Java Ros. Jazyk bol koncipovaný ako jazyk pre vstavané zariadenia, najmä pre kávovar. Tak sa ukázalo ako meno ...
Čo sa s ním začalo vôbec, čo bolo v ňom dobré a prečo získala viac popularity? Po prvé, úplne sa zbavili dedičstva modrej, úplne. Žiadne ukazovatele, oveľa menej spôsoby, ako strieľať niektoré časti tela a prelomiť všetko. Po druhé, zaviedli oveľa novšie nápady, pokiaľ ide o objektový model - to znamená, že C ++ sa objavil oveľa skôr ako Java a používali viac archaických, "Wild" model objektu. No, tu (lektorka na Java) bola už viac premyslená, potom a v teórii ľudia si mysleli, av praxi používali a urobili všetko chladnejšie.

Nakoniec tretia. Máme program na Jave, ktorý nie je zhromaždený strojovým kódom, ale v kóde pre virtuálny stroj. To je, že ste žili virtuálny prístroj (Vm) JVM - Javovskaya. Vaše programy išli do určitej strednej reprezentácie a potom sa s pomocou týchto vozidiel už vykonali. Čo to dáva? Po prvé, za druhé spomalilo, po druhé, vybuchlo pamäť s hroznou silou, v treťom, bola prevedená kdekoľvek (teoreticky) - aspoň kávovar, dokonca aj na brúsei kávy, aspoň na počítači, aspoň na mobilný telefón. Toto, na jednej strane, to znamená, že ste práve napísali implementáciu virtuálneho stroja, potom spustíte svoje programy Javova všade. Ale na druhej strane, je to zlé, že na tom istom telefóne potom bola malá pamäť, tam bol nízky výkon a toto všetko sa ďalej začalo miešať a spomaliť.

Ale ani to nie je hlavná vec, pre ktorú bol vo všeobecnosti vynájdený jazyk. Java Java bol nabitý, aby znížil požiadavky na kvalifikáciu programátorov. To znamená, že viac zlých programátorov môže písať dobré programy na Java, pretože vám nedovolí písať zlé programy - nie sú žiadne prostriedky na to, aby ste napísali programy zle. Tam môžete písať len dobre, programy. No, v pochopení tvorcov jazyka.

To znamená, že ak na C ++, na Pythone, na čo poteší, môžeme plemeno z vášho projektu hrozné odpadky nejaký druh, kde sa tam všetko deje, ísť celé hodiny a je tu niečo iné. V Java sa odpadu môže tiež zriediť, ale pre to už potrebujete urobiť nejaké úsilie. To znamená, že štandardne neexistuje "odpadky", existujú ďalšie problémy, ktoré tam je niečo, predstierali - vo všeobecnosti, jeden zmysluplný reťazec nie je veľmi zmysel. Ale možno taká sekundárna kvalifikácia, programátor napísal pomerne kvalitný kód.
Takmer sme skončili. My, nasledujúce, ktoré sa objavili. IT. IT (DOTNET), No, najmä máme záujem o C # (takmer ten istý [lektor označuje Java], to znamená, že v detailoch existujú rozdiely v detailoch - pozri tam, kde peniaze platia viac).

A ešte jedna vec - Javascript. Nemá nič spoločné s jazykom Java, objavil sa v tom istom roku - slovo bolo módne, licencované ochranná známkaPoužit.

Čo je najdôležitejšie, musíte venovať pozornosť? (Prednášajúci čerpá šípky z C ++ na Java, .NET, C #, JavaScript a PHP). Ak chcete napísať jednoduchý program na jednom z týchto jazykov, a na mnohých ďalších - ak viete C ++, nepotrebujete nič iné nič iné - budete mať a písať na C ++ a potom pridajte doláre na začiatku, Niečo iné, čo robí malé veci a vy ste to začne pracovať na čomkoľvek (lektor zobrazuje jazyky, ku ktorým boli šípky z C ++ vyhradené). To znamená, že sú veľmi podobné v niektorých jednoduchých veciach. Ak sa rozhodnete o niektorých školských výzvach, Úlohy, Niečo iné (Nezahŕňajte veľký projekt - máte jeden súbor, ktorý číta čísla, zobrazí čísla v konzole, niečo iné, niečo iné, potom neexistuje takmer žiadny rozdiel medzi týmito jazykmi. Je jasné, že JavaScript a PHP sa špecializujú, sú to trochu iné. Ale tu (lektor označuje Java a C #) všeobecne oveľa väčší rozdiel.

Odvtedy sa objavujú všetky druhy zaujímavých vecí, ale nie je jasné - budú žiť alebo úspešne zomrieť. Čo je teraz, za aké úlohy používate?

Vyberte jazyk v závislosti od úlohy

Predpokladajme, že máte úlohu napísať ovládač pre grafickú kartu. Aký jazyk budete dnes používať? (Plač z haly: Java!) A čo ... Java je vynikajúca, ale čo nie je na Ruby alebo PHP? (Lektor hovorí so sarkasmom.)

Nízkoúrovňové programovanie

Ak napíšete niečo nízke úrovne, potom najlepšia voľba je Si, ale vlastne som počul niečo (ale nevidel som), že C ++ sa používa na to. Ale ja som sa v ňom oslaboval, pretože v SI môže byť jasne kontrolovaný - pretože ste dali toľko bajtov pamäte, to znamená toľko. A v C ++ (STL) Ako je riadok implementovaný? No, nejako implementovala. A nakoniec nevieme, ako a čo sa tam deje, možno naša pamäť skončí našej grafickej karte alebo sa stane niečo iné. Preto SI stále žije a nezomrú, takéto úlohy systémového programovania sú stále tam - napíšte operačný systém, zapíšte vodiči, napíšte niečo iné - Si skvelé pre to. Okrem toho, všetky druhy zariadení sa teraz objavujú, internet vecí sľubuje, že sa chystá prísť), kto žije z batérie (a prirodzene, bude ich milióny, všetko bude zapojené do tohto internetu vecí), Musia byť veľmi lacné a veľmi málo elektrickej energie. V súlade s tým bude existovať 2 kb pamäte, procesor je 5 kHz, dobre, je zrejmé, že v blízkej budúcnosti nebudete otočiť nejaký virtuálny stroj alebo skriptovací jazyk - to znamená, že musíte napísať niečo na Si. Áno, a teraz, napríklad výpočty na grafickej karte (oponci alebo akúkoľvek inú technológiu) - neexistuje žiadny nový jazyk, aby sa na nich písali programy - robili SI s niektorými veľkými obmedzeniami. Len preto, že ľudia už vedia, ako sa naučiť niečo nové? Formálne je to pravdepodobne aj v nejakom zmysle SI.

Webové programovanie

Predpokladajme, že chcete napísať nový Facebook (Sociálna sieť). Čo na to napíšete? (Z haly, ktoré hovoria o HTML a CSS.) HTML, CSS je dizajn, a chceme tam pridať fotky, priatelia, komentáre odísť.

Pre skriptovaciu časť, to znamená, čo sa stane na strane klienta, je JavaScript. Navyše, niekedy je Javascript generovaný v inom jazyku a je poslaný (Stáva sa to, že skript je generovaný ... pretože je to tak jednoduchšie, niekedy zvládnuť niektoré zmeny v logike).

Prekvapivo je napísané v PHP - a Facebooku, a mnoho ďalších veľkých projektov. Samozrejme, bolo potrebné napísať svoje vlastné veci, že stále fungovalo v poriadku, a nie ako "TEP-LYAP" bol hotový, ale vyrovnali sa. V zásade, viac-menej, na to, čo budete písať, ale neodporúčam Perl. Tu a teraz, jasný prípad, nikto neoprávuje nič od nuly pre web. Každý píše nejaký rámec alebo niečo iné. Internetový obchod? Stiahol som rámec pre internetový obchod - dobre, všetko, napísal internetový obchod.

Programovanie pre podnikanie

Ďalej chcete napísať nejakú nudnú aplikáciu pre banku. Alebo napríklad máte každý, kto predáva Sims? Možno ste si niekedy kúpil telefón alebo niečo iné, čo vám povedali: "Tu je systém visiaci, nemôžeme robiť nič." Čo napíšete takúto aplikáciu? (Plač z python haly) na python, nie je možné písať, čo si?! Nič pre podnikanie by nemalo písať na Python. Prečo? Pretože keď napíšete niečo na Python, nemôžete detekovať výrazne množstvo chýb v procese písania. Python je v každom smere dynamicky napísaný, a vo všeobecnosti môže byť tak skrytá chyba, že sa objaví v takej situácii, že nemôžete ani pochopiť, čo tieto výletné užívatelia tu urobili, že všetko vypustilo. To znamená, že je lepšie písať na python pre seba, malé skripty - chápete, čo sa tam deje a čo sa robí. No, alebo niečo, čo nie je škoda, aby ste vyhodili: Chcete sa zaoberať niečím pred konkurentmi, takže sa to bude zlomiť. Napísali ste na python a všetko - zachytil si trh. A ak napíšete niečo dlho, napríklad, banková aplikácia je nejaká druh (takže to schválila úvery, niečo iné) - napíšete ho na Java. Pretože tam je vážny, papier, peniaze, dokumenty, niečo iné, ale v ňom je nemožné v ňom, že všetko sa zlomí, inak budú ľudia urazený - nemajú žiadne peniaze, ktoré nemali nikde, pretože máte nejaké peniaze Druh momentom reťazca sa stal číslom alebo naopak. To znamená, že to znamená metodicky na Java a písať, písať ... No, alebo na .NET, aj takéto situácie, v zásade existujú. Samozrejme, môžete tiež prejsť na problémy, ale stále je pravdepodobnosť, že je o niečo nižšia.

Programovanie pre armádu, letecký priemysel

A teraz si predstavte, že ste sa rozhodli poslať vám na Mesiac na rakete. Čo by ste radšej napísali kód, ktorý ovláda raketové motory? Pozrime sa. To je pravdepodobne (lektorka ukazuje na Perl, Python, PHP, Ruby), to nestojí za to - spomaľuje sa, niečo iné sa deje, dobre, vo všeobecnosti by som nesúhlasil s lietať na takej rakete. Na C ++? Chcel by som tiež úprimne, nezverejňoval, pretože na C ++ príliš veľa spôsobov, ako zabiť. Keď ste tam niekde v priestore, to nie je veľmi dobré.

Možno na Java? Zdá sa, že je to pomerne spoľahlivo všetko a architektúra je dobrá, žiadne divoké typy, žiadne výstupy nad rámec zbytočnej pamäte. Predpokladajme, že prišiel najviac zodpovedný moment a naša Java sa rozhodla zbierať odpad pre nás. Musíme pristáť, spomaliť, a to je: "Nie, odpadky sa deje." Všeobecne nie je moc.

Úprimne, rád by som, aby Pascal napísal tento program. Samozrejme, nemám rád Pascal, ale nejako v takýchto záležitostiach by to bolo veľmi veľké.

Využite okamžite viac jazykov

Čo potrebujete povedať o moderných jazykoch. Teraz mnoho projektov nežijú v jednom jazyku, to znamená, že niekto žije v jednom jazyku, časť - na druhej strane, ďalšia časť je na treťom mieste. Napríklad, ak máte nejakú webovú aplikáciu, ktorá spracováva divoké množstvo informácií, prístupové disky (ani ani do databáz, sú tak obrovské, že existuje dokonca databáza, ktorá ešte nie je napísaná) je pravdepodobne napísaná na akomkoľvek tejto nízkej úrovni na divoko napíšte na disk a všetko. Prirodzene, písanie celého projektu na SI to nestojí za to. Možno existuje nejaká stredná logika napísaná v Jave, ktorá sa vzťahuje na modré funkcie pre rýchle odvolanie. No, frontnian (potom to, čo užívateľ sleduje), samozrejme, už napísané na niečom, na niektorých skriptoch, na to, čo priamo popravuje prehliadačom (JavaScript). A to všetko žije spolu a úspešne interagujú.

Vo vývoji niektorých aplikácií, dokonca veľký, niekedy ľudia robia čo? Berú a napíšu prototypu na Python (ako to bude fungovať), vyhadzujú nejaký druh architektúry. Písanie na to naozaj veľmi rýchlo - hodili prototyp, experimentoval s ním a povedal: "V! To je to, ako cool! " A úplne prepísané. Zdá sa, že to robili prácu dvakrát, z toho dvojnásobok času vľavo (dobre, v jednom a pol). Ale nie! Často sa ukazuje, že takýto spôsobom nie je zlý, pretože ak napíšete okamžite na niečom, napríklad na Java a potom sa rozhodnete: "Nie, poďme refaktoring, zmeniť architektúru úplne a všetko," potom stráviť 10-krát viac čas. Takéto veci tiež existujú a žijú.

Podmienky úspechu akéhokoľvek programovacieho jazyka

Poďme teraz hovoriť o tom, prečo niektoré dobré jazyky neprežili, dobre, alebo žili vo veľmi obmedzenom priestore. Keď Wirth videl, že zlé firmy jablko, Borland, a všetko, čo a všetko, čo prišiel s jazykom ešte lepšie - Oberon. Bol len divoko minimalistický - to znamená, že bolo veľmi málo tímov (Lines? Prečo potrebujeme struny? Urobíme rad postáv!). No, niečo nechodilo s ním, v rozsahu, ktorý by mohol ísť.

Ďalšia vec. Americká armáda ich požiadala, aby vytvorili strmý jazyk, na ktorom všetko funguje a všetko môže byť napísané. Výsledkom bol skôr monstrózny jazyk ADA, na ktorom však niečo napísal, ale znova - pre armádu.

Aký je problém? Prečo niektoré jazyky ako Python, ktorí ho na začiatku nepodporili, zachytili trh. PHP, ktorý je tiež zle navrhnutý, sa tiež vzal a zachytil trh (najviac). A všetky miliardy dolárov sú vložené (lektorka ukazuje na ADA) a nešiel nikam, nič sa nestalo. S čím je spojené? Je to spôsobené tým, že okolo týchto jazykov neexistuje žiadna infraštruktúra. To znamená, že jazyk môže byť vynikajúci, ale neexistuje žiadna dokumentácia, kým neexistuje žiadna komunita, ktorá je schopná odpovedať na otázky (o pretekoch zásobníka) a nakoniec, najdôležitejšia vec nie je veľký počet knižníc, jazyk nie je strieľať. To znamená, že ste napríklad chceli napísať webovú stránku na Oberone. A čo, prečo nie? A Moroka začína ... Nemôžete zvýšiť svoj webový server na Oberone, aby ste testovali ľahko, akékoľvek knižnice, ktoré sa nemôžete pripojiť, pretože nie sú na tím objímky. A to všetko prostredníctvom niektorých barlín sa vykonáva, sily idú preč a vo všeobecnosti si pľuvajú a píšete na čisté miesto SI namiesto obalu. A tie jazyky, ktoré vedia, ako používať knižnice z iných jazykov žiť dobre. Rovnaký python na týchto miestach, kde sa spomaľuje. Všeobecne platí, že všetky druhy štandardných vecí, ako je triedenie a niečo iné, na c, a on (python) môžu s nimi komunikovať.

Java má tiež Java natívne rozhranie. To je v podstate SI, to znamená, že tam (podľa môjho názoru chcú zákaz, ale zdá sa, že ešte nie je zakázané) Tieto jazyky môžu komunikovať s existujúcimi knižnicami (väčšinou modrý). A na úkor tohto blesku a práce. Rozumie sa myšlienka, že sa vám snažím vyjadriť, že? Nepíšte v týchto jazykoch, ktoré neviem, ako pripojiť modrú knižnicu. No, ak chcete použiť niečo cool. No, a postupne (jazyky) obrátia svoju vlastnú infraštruktúru. A žijú nejako dobre.

Programovací jazyk a odborné poradenstvo

Poďme teraz hovoriť o tom, ako pochopiť, čo chcete v živote. Čo sa stane o vtipné veci? Môžete sa zapojiť do nejakej systémového programovania, správne? Si cool, aby ste zvážili tieto bajty, chcete spustiť štvorkolky, niektoré kamery, niečo iné. Potom, pravdepodobne, C je vaša voľba.

Ak chcete písať, možno nie je najzaujímavejšie v živote aplikácie, ale ste v pohode, aby ste ich navrhli, premýšľajte o tom všetko a zarobíte veľa peňazí, za sedenie a miss väčšinu času (pre to potrebujete Platiť, ak kvalitatívne nám chýba), tu sú - Java, .NET. Chodíte do práce v nejakej banke, napíšte, choďte na deväť, aby ste pracovali v bielej košeli, získajte dobrý plat a napíšte podľa odporúčaní Najlepšie Java-Water ,NET ovce a všetko ...

Ak chcete napísať všetky aplikácie, nejaký druh prehliadača, niektoré hračky, niečo iné, potom C ++ je skvelé. Ak chcete písať si sastiters, potom tu sú jazyky podľa vášho výberu (lektorka ukazuje na Perl, Python, PHP, Ruby), nie je veľký rozdiel. Jediná vec - PHP zomrie skôr ako Python, takže ak ste leniví, aby ste sa naučili novú, potom sa naučte Piton. Nebudem si všimnem veľký rozdiel, ale zomriete dlhšie.

Čo sa stane s Ruby, je tiež nepochopiteľné. No, môžete a php, ak sa už dozvedeli, sú tak jednoduché, že nie je tak dlho.

A konečne, existuje ďalšia oblasť použitia programovacích jazykov - to je, keď nepoužívajú programátor. Predpokladajme, že ste matematik, fyzik, chemik, analytik, niekto, a musíte niečo rýchlo spočítať, analyzovať všetky údaje (napríklad biológov, koľko schodov žije na veliteľských ostrovoch). Môžete to všetko podpísať v programe Excel v programe Excel alebo Analyzujte čokoľvek. Python je tiež dobrý prístup k tomu, s textom, ktorý môžete pracovať a knižnice sú plné všetkých druhov štatistických a všetkých. Ak chcete urobiť akékoľvek strojové učenie, niektoré údaje na spracovanie, predpovedať, potom na python sa teraz robí rýchlejší. Je potrebné poznamenať, že úlohy sú veľmi odlišné. Napríklad, ak chcete obchodovať na burze okamžite v podmienkach, keď citácie sa menia po celú dobu, potom, čo vaše strojové učenie napísané na Python, ľudia, ktorí sú napísané na niečom, bude rýchlejšie, bude mať čas kúpiť všetko predtým Všetko vás prichádza, aj keď majú algoritmy horšie. Preto aj tieto úlohy strojového vzdelávania (niektoré z nich) vyžadujú vysokú produktivitu (a extrémne vysoké) a iné jazyky.

Jediný spôsob, ako pochopiť, čo chcete, je vyskúšať to všetko. Teraz poviem ako jednu z vízií toho, ako si môžete vyskúšať všetko. Ako sa stať programátorom a šťastným? So. Štart od čistých listov. Tu študujete v škole so svojou matematikou, ruským jazykom a inými povinnými a voliteľnými predmetmi a vaše znalosti v oblasti programovania sa odráža na palube (lektorka ukazuje na prázdnej doske) tento moment. A chcete sa stať šťastnou osobou, aby ste urobili milovaného človeka, zarobte si veľa peňazí a nepopierajte si seba a radovali sa.

Jeden spôsob, ako to dosiahnuť. K dispozícii sú, samozrejme, všetky druhy inšpiratívnych príbehov o ľuďoch, ktorí nešli na univerzity vôbec, alebo ich hodili a stali sa miliardmi, majiteľmi spoločností, a tak ďalej. Treba však poznamenať, že väčšina ľudí, ktorí nemusia byť miliardári, ale aj dobre, po všetkej univerzite v určitom okamihu.

Aká je naša situácia s prijatím na univerzitu (študujete v škole)? Aj keď študujete v škole, musíte pochopiť čo ďalší krok - Zapísať sa a postarať sa o to. Prejsť skúšku alebo vyhrať olympijské hry. Na skúške môžete použiť Pascal, C ++ (vrátane čistého SI), Python (nebudem ich ďalej spomenúť). Na olympijských hrách - ten istý Pascal, ten istý C ++, ten istý Python (teraz budeme hovoriť o svojich problémoch) a najčastejšie je tu Java. V závislosti na olympijských hrách je ešte niečo čokoľvek, ale nie esencia.

Ako vyzerá rozvodový harmonogram na All-Russian Olympiáda na počítačovej vede? Ľudia, ktorí sa zúčastňujú na All-Russian, najviac strmých olympiáde, čo píšu? Vyzerá to takto (tu to znamená Pascal a tu asi 2000, a tu je približne nula, tu C ++ a tu 2015).

V roku 2000, C ++ takmer nikto napísal. Trvalo 15 rokov a takmer nikto píše na Pascal, napriek tomu, že Pascal je moderný. Toto je jazyk, ktorý môže takmer všetky rovnaké. Len niečo pre každého sa stalo príliš lenivým, aby sa naučil, každý nový trend a všetko naďalej píše na Borland Pascal, ktorý samozrejme nič nemôže. Na C ++ Ľudia napíšte všetky algoritmy (STL) kurvy - dokonale, napísali druh () a to je všetko. Na Pascal, na obvyklom, na staré je problém. Napísali niektoré súpravy (potrebné) - dokonale, na C ++, opäť napísali na Pascal, opäť Torment Solid. Na nových Pascals to môžete urobiť, môžete to urobiť, ale stáli peniaze vlastne. Možno ste si to nevšimli, ale je to.

Ešte je Java, ale v Java je veľa písmen. Je to pre veľké projekty a pre malé disponibilné programy sa ukáže veľmi zle, pretože veľa ďalších písmen. Ale aj niektorí ľudia píšete, môžete sa naučiť písať na to. Ale nie je nikto na jeho skúške a skúška sa bude stále musieť vziať z väčšej časti.

Čo je najlepšie pre skúšku? Pre skúšku najlepšie (ak neviete nič a v škole, nie ste učili), aby ste sa naučili python. Niektoré úlohy skúšky sú na ňom dokonale vyriešené. Na olympijských hrách sa vo všeobecnosti ukazuje, že (používa sa) C ++, pretože Python je veľmi pomalý, nie všetko je vyriešené.

Študovali ste teda nejakú malú podmnožinu jazyka a niektoré algoritmy (možno) a mnohé úlohy v tvare, aby sa získal diplom našej olympijských hier a vstúpili do univerzity, aby získali vyššie vzdelanie.

Poviem vám o tom, ako budujeme kurz vo veži, v akom jazyku sa jazyky idú, as Štúdium o aplikovanej matematike a informatike Fakulty aplikovaných vied, ktoré robíme s Yandexom. V prvom semestri - Python (nie v plnom rozsahu, ako by ste sa mali učiť v škole) a C ++ (širšie, oveľa širšie, než je zvyčajne učil v školách). Povedzme práve teraz, aby ste sa nebojili, ak ste zrazu chcú robiť, povedzme: "Čo už viem všetko, prečo sa niekde učím? Lepšie pôjdem na iné miesto. " Pre tých, ktorí už vedia, ako dobre programovať, existuje možnosť okamžite ísť do štúdie algoritmov a skôr teoretického vzdelávania. Teraz sa na nich nepozeráme, to (ukazuje na rade) pre tých, ktorí program sú média alebo akýmkoľvek spôsobom.

Prvý semester študuje základy Pythonu, že sa ľudia naučili program a že nikto naozaj nesklame. Python je malý, kde učia v školách, väčšinou ľudia prichádzajú so znalosťou Pascal alebo C ++. Väčšinou dokonca Pascal, ak je to masová škola. No, takže nikto nesklamne, každý sa učil nový jazyk (ako keby boli v rovnakých podmienkach). A C ++ je jednoducho preto, že od C ++ potom môžete ísť kdekoľvek.

Potom existuje kurz "algoritmy" a samostatný termín. Klasické algoritmy s implementáciou. Nie, že teoreticky sme vzali niečo, považovali za zložitosť. Vzali sme na prednášku, zváželi sme zložitosť, na seminári, ktorý prijali, implementovali algoritmus. Projekt je študenti, ktorí robia niečo kompletné. Napríklad jeden z projektov bol: vypočítať ... Predpokladajme, že máte veľa bytov v Moskve a rozumiete: "Oh, mám veľa nadbytočných, nájdem nejaké. A vydávajú určitú cenu a nikto nechce niečo strieľať váš byt - pravdepodobne príliš drahý. Alebo nastavte určitú cenu, okamžite ste odstránili a myslíte si: "Oh, pravdepodobne som prešiel lacným" - a tiež rozrušený. To znamená, že je potrebné vypočítať, koľko sa nachádza byt? Dáte údaje - je pre vás hodnotené. Takýto Sittik, ktorý sa skladal z niekoľkých vecí: Vezmite si ponuku, naliate, aplikujte nejaký druh stroje na učenie algoritmus (pravdepodobne) jednoduchý a urobiť krásnu webovú tvár, v ktorej si môžete vybrať niečo, riadiť niečo, niektoré merače, ľubovoľný počet izieb, Počet sauny, počet víriviek vo vašom byte a zhruba hodnotí náklady. To je, nejaký druh úplného, \u200b\u200bnie veľmi zložitá vec. To tu znamená (lektor ukazuje kurz na algoritmy), ako je C ++ C ++, s úvodom konzoly. No, tu (lektor ukazuje nápis "projekt") niečo pod vedením mentora, prípadne s databázami, prípadne s analýzou textov a niečoho iného.
Tretí semester potom ide - toto je kurz nazývaný "Počítačové systémy". Tam je veľmi malý asociovaný assembler na pochopenie (veľmi málo) a potom niečo podobné čistiť SI a interakciu s operačnými systémami, systémové programovanie je v podstate. A projekt seminára je tiež niečo na všetkých druhoch sieťových interakcií, dostatočne nízkej úrovni: rozvíjať nejakú užitočnosť, ako je RSYNC (synchronizácia, možno viete. V čistote SI, menej, napíšte analóg Rsync, ktorý budete Majte sieťové synchronizácie zložky so všetkými súbormi do súborov a tak ďalej).

A nakoniec, štvrtý. Ani neviem, ako to nazvať, je to taká vinaigrette technológie potrebné na reálny vývoj, napríklad pre vývoj webových stránok. To znamená, že je to praktické uplatnenie databáz, opäť niečo podobné tomu, čo bolo vykonané v projekte (lektor ukazuje 2. projekt 2. kurzu), ale už viac hĺbky. To znamená, že už viac alebo menej konkrétne veci, praktické programovanie. Súbežne s týmto, každá teória ide, dobre, a tu je veda stále zapojená.

A po dvoch kurzoch sa ľudia líšia, aby sa zapojili tam, kde majú záujem, pretože táto vec sa pokrýva pomerne široko základy programovania a ľudí v tomto bode už pochopiť, že nechcú robiť počítačové systémy V žiadnom prípade (systémové programovanie, napríklad, nemali radi), ale chcú sa zapojiť do niektorých teoretických algoritmov, ťažkosti zvážiť, vymýšľať nové veci, distribuované alebo niečo iné. Alebo naopak, myslia si, že nie sú veľmi ( prednášajúci označuje prvú ročnú líniu s Pythonom a C ++) išiel, potom ( prednášajúci indikuje reťazec tretieho kurzu s programovaním systému) - Ako sa nepáči, počítať Bye a dať všetky druhy obmedzení na čítanie a záznam, vytvárať prúdy, stromy a niečo iné. A v súlade s tým, ľudia si vybrať nejaký druh smerom a učia sa. To znamená, že v zásade, že nevyvíjate "UTANKI syndróm" - bol si prvý, kto videl môj Pascal a teraz hovoria "Pascal - moc"; Alebo pokročilí - videli ste C ++ a začal hovoriť o všetkých tých, ktorí C ++ Force, a všetko ostatné nie je tam.

Musíte sa na to pozrieť (lektor ukazuje zoznam kurzov na tabuli) je širší - to je jeden zo spôsobov, ktorý bol vybraný, najmä vo veži (nedávno sa objavil, takže je to pomerne moderné). Existujú aj iné spôsoby, ako sa stretnúť. V iných dobrých univerzitách sa nachádzajú trochu v inom poradí a iné akcenty sú usporiadané. Ale tiež vyskúšať ľudí s každým, kto by predstavil to, čo majú.

Ako programátor hľadá prácu

Si to ( lektor zobrazuje zoznam kurzov) Urobili všetko, naučili sa na univerzite a niečo na dva roky pracovali produktívnejšie a musíte ísť do práce. Ako si vybrať si niečo pracovať? Po prvé, stretli ste sa s každým, niekde sa prehĺbili a viete, že milujete. Je potrebné si vybrať, čo milujete prirodzene. Pretože ak sa vám páči, budete investovať, budete mať motiváciu a všetko bude v poriadku. Pretože tam je vec nielen v peniazoch, bod je, že máte záujem a pekný. No, a chcete sa dostať do cool company, získať prácu. Ktorá osoba, ktorú som osobne chcel vidieť? Prichádza ku mne, povedzme, sto študentov - musím vziať dve do práce alebo jedného. Čo prídu, nerozumiem, kto sú, čo sú, ako sú? V najlepšom prípade mi ukážu diplom, ktorý sa dostal na univerzite a poviem: "In! Toto je chladný diplom, a to nie je tak cool! " Mimochodom, môžem urobiť chybu. Možno človek mal veľa voľného času a naučil sa oveľa lepšie.

Čo by bolo pekné? Po prvé, niektoré open source projekt, ktorý ste napísali od začiatku až do konca. Je žiaduce, ak urobím nejakú infraštruktúru, aby sa údaje rýchlo zvážili, niečo iné, potom, samozrejme, by som mal záujem o písanie, že sa mi niečo otvára. Nie som Saytyik nejako urobil, ale niečo na téme. Prečo je to pre mňa zaujímavé? Môžem sa pozrieť na váš kód, vidím, ako často ste sa zaviazali, vidím, ako ste reagovali na chyby od užívateľov, chyby od vývojárov, ktorí sa používajú - všetko je napísané, robím všetko a myslím: "V, tu je chyba Už nebola zatvorená, tu ste neuveriteľne odpovedali na používateľa, je tu niečo iné - neberiem. " To je váš osobný projekt.

Ďalej, čo by bolo v pohode? Chcel by som vidieť, ako ste urobili veliteľskú prácu. To je, prídeš ku mne na pohovor a povedať: "my a chlapci z UNI umyli nejaký druh prístrojov. Urobil som tam databázu, urobili tam nejakú mobilnú aplikáciu, a stále tam máme chlapca, dizajnérske dievča, chlapec na technickej podpore. Boli sme päť ľudí a urobili sme skvelý projekt. " No, vidím, čo je naozaj váš projekt, hovorím: "Čo je tvoje?" Vyzerám znova kód a pochopím, že môžete pracovať v tíme s ľuďmi.

Programátor nie je ten, kto sedí jeden (Indie taký) v garáži, niekde so svetlom, nehovorí s nikým, stáva sa bradou a píše. Mimochodom, existuje nejaká interakcia s ľuďmi. S šéfom, napríklad, ktoré možno niekedy prisahajú (náčelníci, nie sú vždy láskaví). A vidím, že môžete pracovať s ľuďmi a robí ma šťastným, ak máte dobrý tím. Aj keď nie je dobré, je to lepšie ako jej neprítomnosť.

Čo by som to mal rád osobne? Ak ste sa ukázali vo veľkých projektoch. Napríklad niečo v jadre Linuxu bolo zakúpené, ak ste zapojení do programovania systému, opravil som nejakú chybu. To znamená, že ukázali, že viete, ako čítať kód niekoho iného a vedieť, ako na to urobiť nejaké zmeny. Pozerám sa: "Oh, naozaj ste si mysleli niečo ťažké a niektoré chyby opravené!" A začnem sa z toho veľmi radovať. Pretože mám ... No, neviem ... To je môj programátor ukončený, pretože konkurenti mu ponúkli viac platu, a musím urýchlene uviaznuť niekoho, kto by skryl svoje miesto - vy. Vidím takú vec, ktorú ste práve napísali od nuly a kód niekoho iného neviem, ako čítať a upraviť a rozrušiť.

Nakoniec, v závislosti od konkrétneho príspevku existujú rôzne iné veci. Ak ste vhodný pre analytik, chcel by som, aby ste mali kaggle, aby ste mali úlohy analýzy dát. Ak ste vhodný pre niektoré algoritmické veci, rád by som bol v športovom programe, ktoré boli vykonané niektoré algoritmy. Nakoniec, ak ste sa premýšľali o profesii, prečítajte si ako rozhovor prejsť, "stretli sa, že tam sú niektorí ľudia, ktorí tam vyjadrujú veľkú nespokojnosť:" Prišiel som, a ja sa ma pýtam, čo je môj hobby. Sedím ako sova a neodpovedám, pretože nemám hobby, "a myslím si, že HRS to robí. V skutočnosti sa snažia pochopiť, ako benevolentný ste tiež primeraný. Ak ste nepriateľskí a neadekvátne, čokoľvek ste tam tu génius a workohololic, strmý špecialista s veľkým vedomím, tím bude ťažko spolupracovať s vami, a sám, že nebudete ťahať projekt. Okrem toho, aj keď vytiahnete, dokážete si predstaviť, aké zaťaženie pre spoločnosť. A čo príde zajtra a povedzte: "Zvýšte mi plat 10 krát, inak ťa opustím." Spoločnosti často nechcú dostať do takejto situácie. Preto je vzdelávanie sám o sebe primeranosť a goodwill je rovnako dôležitá (aspoň) ako rozvoj niektorých odborných zručností.

Zhrnutie, čo môžem povedať? Aké jazyky sú dobré a čo zlé? No, vo vnútri nejakej skupiny jazykov, napríklad medzi Ruby, Python a PHP, čo si vybrať? Samozrejme, správnou odpoveďou je Python, ale v skutočnosti rozdiel medzi nimi v počte chýb prípustných, v množstve niečoho iného - 5%, možno, možno 10%. To znamená, že ak máte už pripravený projekt na PHP, nikto nepovedal v správnej mysli: "Prepísať všetko na Python." Bude povedané: "Poďme najať ďalších vývojárov PHP a bude pokračovať v písaní PHP." Je to dobrá voľba. Je jasné, ak ste náhle napísali písať nejaký projekt, potom je rozumné vybrať si Python teraz. Hoci závisí aj. Možno máte veľa lacných vývojárov PHP na trhu, a python drahé, a myslíte si: "Áno, technológia je viac cool, ale ušetrím peniaze na hotových vývojárov." A všetko, vynikajúce, už tam prišli a pracujete.
Ako si vybrať medzi Java a C ++? Áno, to isté sa deje. Myslím si, že v čase, keď budete rozhodnúť, aký jazyk začnete nový veľký projekt, získate vedomosti vo vašej profesionálnej oblasti a môžete urobiť správnu voľbu. Teraz ste ešte nemusíte robiť taký výber, a preto vám poradím, aby ste robili to, čo sa mi páči.

Základy, ako som povedal, najviac základy programovania (čo je funkcia, čo ak je, pre's, masívy, niečo iné) sa môže naučiť viac či menej v akomkoľvek jazyku. Napríklad, C ++, pretože na ňom je veľa vecí, a špecifiká v ňom (na takej úrovni), A najmenej a zobáky zbytočného písania. No, a potom, keď sa dozviete nejaké komplexné architektonické veci, naučiť sa a o tom sa učiť. To znamená, že najdôležitejšie - skúste, pozrite sa na to, čo sa vám páči a keď pochopíte, že teraz za 4 hodiny ráno, a vy ste pre zábavu sedieť a písať, pretože sa vám to páči - pravdepodobne, v tomto momente je to jasné že ste našli svoje vlastné.

Ak chcete vyriešiť počítačové úlohy, grafické procesory sa teraz stále viac používajú, ale otázka je stále otvorená: Ako písať efektívne programy Pod príslušnými konfiguráciami?

06/15/2011 Andrei Adinets

Ak chcete vyriešiť výpočtové úlohy, grafické procesory sa teraz stále viac používajú, ale otázka je stále otvorená: Ako písať účinné programy pre príslušné konfigurácie? Štandardné riešenie - banda cudy alebo openCL - umožňuje relatívne rýchlo implementovať algoritmus, ale je ťažké vytvoriť konkrétnu konfiguráciu s ich pomocou. Vyžaduje nástroje na programovanie grafických procesorov na vysokej úrovni, ktoré môžu byť vytvorené, napríklad s pomocou rozšíriteľných jazykov.

Pred tromi rokmi, grafické procesorové vybavenie (grafické spracovateľské jednotky, GPU) boli považované len ako grafické karty pre PC, teraz postoj k nim zmenil - tam boli špeciálne modely serverov GPU zamerané na riešenie výpočtovú úlohu, výkon na dvojitých výpočtoch presnosti sa zvýšili , Systems Record Funkcia, ktoré zaberajú horné riadky v Top500. Ako písať efektívne programy pre takéto stroje? Štandardná reakcia - Bunda Cuda alebo OPENCL pre GPU a MPI programovanie na úrovni klastra. Tieto nástroje sú k dispozícii, aktívne podporovali výrobcovia zariadení, mnoho programov už boli napísané pre nich, ale aj nevýhody.

CUDA a OPENCL - rozšírenia jazyka SI, nie je ťažké študovať, aj keď sú dostatočne nízkoúrovňové nástroje. S pomocou ich pomoci môžete relatívne rýchlo implementovať algoritmus GPU, ale verzia optimalizovaná pre konkrétnu aplikáciu a konfigurácia je oveľa zložitejšia. Všetky optimalizácie budú vykonané ručne, čo povedie k zvýšeniu veľkosti kódexu a zhoršeniu jeho čitateľnosti. A hoci programy vytvorené pomocou OPENCL budú prenesené medzi širokou škálou architektúr, výkon s takýmto prevodom nebude uložený. Chceli by ste programovanie vyšších úrovní GPU.

Vytvorte takéto nástroje môžu byť vytvorené rôznymi spôsobmi: zadajte nový programovací jazyk; Pridajte smernice do existujúceho jazyka, ako sa vykonáva v Acceleráči CHZP alebo CAPS HMPP model; Využite rozšíriteľné jazyky. Rozšíriteľné jazyky- Programovacie jazyky, syntax a sémantika, ktorej nie sú pevné, a môžu byť zmenené v závislosti od potrieb programátora. V porovnaní s tradičnými, rozšíriteľnými jazykmi majú niekoľko výhod: je ľahšie pridať nové funkcie; Sú otvorené; Štúdia nových programových modelov na základe takýchto jazykov je jednoduchšia, pretože je potrebné študovať len relatívne malé z hľadiska expanzie; S pomocou takýchto jazykov je jednoduchšie vykonávať jemnú konfiguráciu a optimalizáciu programov.

Rozšíriteľné jazyky

Aby bol jazyk rozšíriteľný, je potrebné, aby bol v ňom prítomný:

  • mechanizmus expanzie bez zmeny kompilátora je rovnako podporovaný všetkými kompilátormi, čo znamená najmä prítomnosť štandardného rozhrania interakcie s kompilátormi;
  • návrhy na expanziu a manipuláciu s kódom kódu, ako sú makrá alebo kvázi, rozšíriť jazyk;
  • výkonné prostriedky na písanie rozšírenia, napríklad expandovateľný jazyk samotný a iný jazyk, ktorého silu naznačuje, že kód rozšírenia môže urobiť rovnaký ako akýkoľvek program v tomto jazyku.

Ukazuje sa, že jazyky, ktoré spĺňajú tieto požiadavky, sú relatívne málo: LISP, Nemerle, Seed7, XOC a Stratego. Zároveň XOC, ktorý je určený na rozšírenie jazyka SI, používa samostatný jazyk ZETA na napísanie rozšírení a stratego je jazykom oblasti predmetu, aby sa vytvorili meniče zdrojových kódov. Nemerle je rozsiahly jazyk s využitím stredu. Sieť.

Všetky rozšíriteľné jazyky podporovať mechanizmy na prácu s programom programov a predovšetkým tento návrh kvázii - špecifikácia objektu predstavuje stromový strom s použitím najviac zdrojového kódu.

V jazyku Nemerle sa na to používa dizajn, napríklad vytvára strom pozostávajúci z variabilnej deklarácie s počiatočnou hodnotou 0. Kvázia je podobná tvorbe reťazcov objektov so strunovými konštantami. Na obr. 1 príkladom kvázi. Interpolačný dizajn vám umožňuje nahradiť hodnoty premenných v pevnom vzore vo vnútri kvázi. V meste Nemerle, používa na to (napríklad ...), ak chcete nahradiť zoznam, napríklad. Aj v rozšíriteľných jazykoch existujú návrhy na analýzu stromu programu. V jazyku Nemerle sa používa obsluha (...) (...), analógový spínač zo jazyka SI, ako sú vetvy, ktoré používajú nakvaplné návrhy. V tomto prípade sa interpolácia považuje za nových premenných, ktoré, ak sú úspešné porovnanie, prijímať hodnoty zodpovedajúcich substretov. Napríklad, pre zodpovedajúci zápas operátora (e) (| \u003d\u003e ...), ak E obsahuje strom, v premennej A klesá a v premennej b.

Nástroje na prácu so stromom programov sa používajú v jazykových dizajnoch. V Nerlele sú to makrá - Špeciálne funkcieVykonané na fáze kompilácie a vrátenie fragmentu stromu programu, ktorý je nahradený do umiestnenia ich volania. Makro pri súčasnom čase berie fragmenty programu ako parametre a môže ich premeniť. Makro môže byť v zásade spôsobené rovnakým spôsobom ako konvenčný prvok; \\ T Ale zaujímavejšou príležitosťou je viazať makro volanie na špeciálnu syntax. To vám umožní zadať nové konštrukty syntaxe v jazyku Nerlele a tak rozšíriť jazyk.

Na obr. 2 znázorňuje príklad makro so syntaktickým predĺžením, ktorý vám umožní deklarovať multidimenzionálny cyklus s premennými a počtom iterácií pre každé meranie a na obr. 3 Toto je príklad konverzie programu, ktorá robí tento makro. Všimnite si, že makro, ktoré vykonáva takéto rozšírenie, trvá menej ako 30 riadkov zdrojového kódu av tomto prípade obsahuje niekoľko chybových kontrol. S tradičným prístupom by implementácia takejto rozšírenia vyžadovala výrazne väčší počet kódov a okrem toho by si vyžadovalo štúdium vnútorného kompilátora zariadenia.

Historicky sa makro mechanizmus v LISP objavil prvý, program, v ktorom sa zdá ako bežný zoznam a nevyžaduje špeciálne návrhy na prácu s programom programu, takže to bolo v tomto jazyku, že rozšíriteľné programovanie sa stalo najväčšou distribúciou. Makrá v meste Nemerle sú podobné v LISP. V systéme XOC sa mechanizmus rozšírenia implementuje prostredníctvom gramatiky expanzie a analýza atribútov stromov. Akékoľvek rozšírenie nevyhnutne nastaví dva atribúty: Typ syntaxe a výrazu základný jazykv ktorom sa konvertuje.

V prípade rozšíriteľných jazykov je implementácia mnohých štandardných štruktúr charakterizovaná makrámi. V jazyku neererle, všetky cykly a podmienené prevádzkovateliaOkrem zhody, implementované prostredníctvom makier a v Lispy makrách sú štandardné cykly a vlastnosti funkcií.

Ako používať jazyky?

Pre expandovateľného programovacieho jazyka môžete písať štruktúry, ktoré umožňujú najvhodnejší spôsob, ako naprogramovať grafické procesory, ktorý bol vykonaný ako súčasť projektu NUDA (Nemerle Unified Architecture Device Architecture), ktorých účelom je vytvoriť jazyk Nemerle jazyk pre GPU programovanie. OPENCL sa používa ako rozhranie interakcie s GPU a cieľovým jazykom reprezentovať program.

Ak chcete začať, je potrebné vykonať vykonanie na kód podskupiny GPU v jazyku Neerleby. To musí byť podporované obvyklých jazykových operátorov, ako sú cykly a pobočky, ako aj práca s jednoduchými typmi údajov, štruktúr a polí. Kód GPU je predložený jednotlivým funkciám alebo v jadre Nuda. Každé jadro je označené makrom Nukernel, ktorý je generovaný kódom na OpenCL Code a Metóda zástrčky na zavolanie jadra na strane hostiteľa. Pred vytvorením kódu sa vykoná zverejnenie všetkých makier s výnimkou cyklov a pobočkových makier. Ak je vo vnútri jadra požadované na zavolanie funkcie, táto funkcia musí byť označená makrom Nucode, ktorá vygeneruje kód pre túto funkciu v OPENCL. Hlavný hovor sa vykonáva pomocou jadra makra; Okrem parametrov jadra sa prenáša aj na konfiguráciu mriežky prúdov, s ktorou začína.

Najčastejšie sa telo cyklu používa ako jadro pre GPU, takže by som chcel okamžite preniesť cyklus na GPU. V Nerlele sa to dá implementovať - \u200b\u200bzodpovedajúce makro v Nuda sa nazýva NUWORA. Ako sa vyžaduje parametre, trvá veľkosť bloku potoka a na základe aktuálneho kontextu a analýzy cyklického karosérie určuje súbor premenných, ktoré musia byť prenesené do jadra ako parametrov. Telo jadra je generované z tela cyklu, výpočet indexov cyklu prostredníctvom globálneho prietoku, ako aj podmienky, ktoré vám umožní správne vykonať cyklus, aj keď sa globálna veľkosť mriežky nie je rozdelená do veľkosti prietoková skupina. Nové makro hovory na umiestnenie cyklu, ktorý volá generované jadro.

V zásade môžete povoliť používanie jazykových polí Nemerle v programoch GPU, ale vedie k vysokým režijným nákladom - pole je potrebné na kopírovanie do pamäte GPU zakaždým, keď je jadro nazývané, a potom ho skopírujte späť. Preto sa v programách GPU používajú špeciálne typy polí s lenivou synchronizáciou medzi GPU a CPU. To umožňuje, na jednej strane, nie spojiť text programu kopírovaním dátových príkazov a na druhej strane - aby sa zabránilo režim kopírovania údajov. Pre takéto polia, pokiaľ ide o bežné polia v Nerlele, správa pamäte sa používa pomocou zberu odpadu. Ak chcete zvýrazniť pamäť pre takéto polia, existuje Makro NUNEW, ktoré sa musí aplikovať na obvyklý operátor prideľovania pamäte.

Na obr. 4 Na ľavej strane je konvenčný program a vpravo - podobný program, ale vykonávajú výpočty na GPU. Získajte programy GPU z obyčajného jednoducho jednoducho - Aplikujte iba makrá na cykly a operácie prideľovania pamäte a množstvo kódu sa prakticky nezmení. Program napísaný pomocou Nuda trvá menej ako 20 riadkov kódu. Podobný programAle v čistom jazyku si SI a OPENCL trvá viac ako 100 riadkov.

Okrem makier, ktoré uľahčujú prácu s GPU, systém rozšírenia Nuda tiež zahŕňa anotácie na konverziu cyklov. Anotácie sú v podstate špeciálne makrá. Napríklad, inline abstraktné sa používa na cyklus s fixným počtom iterácií a vykonáva svoje plné skenovanie. Abstrakt Dmine vykonáva skenovanie hlbokého cyklu. "Deep Scan" znamená, že vytvorenie niekoľkých kópií telesa cyklu a miešania sa vykonáva nielen pre najviac konvertibilný cyklus, ale aj pre vnorené cykly, ak je nezávislý.

Efekt

Prečo by sa programátor mohol naučiť naučiť nový jazyk a rozvíjať nové knižnice expandovateľných jazykov? Hlavnou odpoveďou je produktivita. Mať algoritmus pred paralelnými cyklami pracujúcimi s poliami a zaznamenané v jazyku neererle, stačí pridať niekoľko anotácií na získanie programu pre GPU. Program sa súčasne vykoná na akomkoľvek zariadení s podporou OpenCL, vrátane grafiky procesory NVIDIA a AMD, ako aj procesory X86. Aby sa dosiahli rovnaké len s technológiami OPENCL alebo CUDA, bude potrebné stráviť oveľa viac zdrojov, ktoré sa uskutočnia nielen na napísanie zdrojového kódu, ale aj ladenie interakcie medzi hostiteľom a GPU.

Ďalším dôvodom je výkon vytvoreného kódu. Na CUDA alebo OPENCL sa konverzia cyklov vykoná manuálne a oddelene pre každú architektúru. Toto je dlhý a zabalený proces chyby a výsledný kód je ťažký a nepohodlný pre sprievod. S Nuda môže byť táto práca vykonaná s pomocou anotácií. Napríklad pre viac jadier môžete optimalizovať konvolúciu obrazu alebo množenie matíc s inline a Dmine Anotácie. Bez toho, aby sa zvýšila veľkosť zdrojového kódu, je možné dosiahnuť zvýšenie produktivity v dvoch alebo päťkrát. Zároveň, ak sa rovnaké transformácie uskutočnili ručne, by to viedlo k zvýšeniu kódu občas, a niekedy rádovo, nehovoriac o čase strávenom času na ladenie a výber optimálnych parametrov zametania. Napríklad univerzálny anotovaný program zo siedmich riadkov v Nuda množení transponovanej matrice na matrici s dvojitou presnosťou sa uskutočňuje na NVIDIA TESLA C2050 len o 40% pomalšie v okamihu implementácie (CUBLAS 3.2). Podobný program napísaný rukou by obsadil 70 riadkov kódu. Prirodzene, pre štandardné úlohy, môžete manuálne napísať kód raz, aby ste zvýšili produktivitu, ale pre konkrétne úlohy, zníženie nákladov práce a produktivity bude veľmi užitočné. Nakoniec, zvýšenie produktivity zahŕňa aj vytvorenie samotných rozšírení: vytvoriť ich s pomocou expandovateľných jazykov je jednoduchšie ako použitie tradičných nástrojov. Celý systém Nuda, napriek svojej funkčnosti, trvá len 12 tisíc riadkov kódu, nepočítajúc testy. Je to relatívne málo, napríklad, napríklad kompilátor Nemerle (Montáž 9025) trvá približne 130 tisíc riadkov.

Expanzný jazyk je výkonný nástroj a jeho použitie v paralelných výpočtoch je stále v pôvodnom stave. Existuje mnoho zaujímavých úloh vo vývoji paralelných programovacích jazykov a ktorýkoľvek z nich môže byť vyriešený pomocou kombinácie rozšírení a knižníc. Môžete pridať do jazykových asynchrónnych blokov kódov a paralelných cyklov, môžete vytvoriť pohodlné vzory Pre programovanie klasterové systémy, ako sú distribuované polia. Nakoniec je možné použiť rozšírenia na vytvorenie plnohodnotného paralelného programovacieho jazyka, ako je kaplnka alebo x10.

Andrey Adinets([Chránené e-mail]) - M.N.S. Nivoz Moskva Štátna univerzita (Moskva).



Písanie väčšiny moderných počítačových programov sa vykonáva pri používaní jazykov na vysokej úrovni. Je pozoruhodné, že mnohé z nich boli vyvinuté v 60. a 70. rokoch, ale sú stále relevantné. Aké ďalšie fakty o jazykoch na vysokej úrovni môžeme oslavovať? Aké sú najčastejšie odrody relevantných riešení?

Essence programov na vysokej úrovni pre písanie programov

Programovací jazyk na vysokej úrovni - nástroj týkajúci sa strojovo nezávislých kategórií. Čo to znamená? Faktom je, že programovacie jazyky sú rozdelené do niekoľkých kategórií.

K dispozícii je strojový kód: súbor algoritmov, ktoré sú navrhnuté tak, aby spravovali používateľa priamo hardvérovými prvkami počítača. Ich subjekt bude úplne závislý na stroji: len určité algoritmy sú vhodné pre špecifické typy počítačov.

Tam sú jazyky assembler. V skutočnosti sú nadstavba cez tie, ktoré sú určené na kontrolu nízkej úrovne komponentov PC hardvéru pomocou stroja. Ale v mnohých značkách sa akceptujú aj assemblerové jazyky, aby sa vzťahovali na strojovo závislé. Spravidla sú prispôsobené špecifickej škálu komponentu PC hardvéru. Ich hlavnou úlohou je zjednodušiť používateľskú správu počítača prostredníctvom vhodnej nízkoúrovňovej komunikácie.

Na druhej strane, programovací jazyk na vysokej úrovni umožňuje užívateľovi komunikovať s PC, bez ohľadu na to, ktoré konkrétne zariadenie je nainštalované na počítači. Preto by sa malo pripísať strojovo nezávislému. Pri písaní operačných systémov je najčastejšie zapojený programovací jazyk na vysokej úrovni. Ale je tu OS, ktorý je napísaný na assembler. Nízke a vysoké úrovne môžu byť použité súčasne. Osoba, poskytovanie tímov na vysokej úrovni, musí mať tak ako tak, aby ich sprostredkovať na špecifické hardvérové \u200b\u200bkomponenty, a táto funkcia je možné realizovať pri použití jazykov Assembler súčasne s vysokou úrovňou, ktorá sa podieľa na štruktúre prevádzky systém.

Prekladateľ

Najdôležitejšie prvky, ktoré sú v programovacích jazykoch na vysokej úrovni, sú prekladatelia. Ich funkcia môže byť iná. Medzi kľúčovými oblasťami aplikácie prekladateľov - "Preklad" príkazov generovaných na programovom jazyku na vysokej úrovni, v strojovom kóde, zrozumiteľným pre konkrétny hardvérový komponent PC, napríklad procesora. Prekladatelia, ktorí vykonávajú túto funkciu, sa nazývajú aj kompilátormi. Existuje ďalšia škála príslušných komponentov - tlmočníkov. Sú zaseknuté, zase, pre "preklad" tímov na vysokej úrovni v tých, ktoré sú pochopiteľné pre operačný systém alebo akýkoľvek program.

Klasifikácia jazykov na vysokej úrovni

Programovacie jazyky na vysokej úrovni možno klasifikovať pre rôzne základy. Schéma, pre ktorú sú rozdelené do nasledujúcich hlavných odrôd, sú spoločné:

Procedurálne orientované (fungujú ako nástroj pri spracovaní informácií v ktoromkoľvek štádiu výpočtov);

Problém orientovaný (používa sa ako prostriedok na riešenie priemyslu a aplikovaných úloh vytvorených rozšírením aplikácií PC);

Objektovo orientované (môžu byť osobitné prípady jazykov prvých dvoch typov, sa však prispôsobujú používaniu širokej škály vývojárov rôzne úrovne Príprava, napríklad vo forme roztoku s vizuálnym rozhraním).

Teraz zvážte niektoré historické a moderné programovacie jazyky na vysokej úrovni, ktoré zodpovedajú tejto klasifikácii.

Procesné orientované jazyky

Taká sa pripisuje Fortran. Je to považovaný za prvý programovací jazyk na vysokej úrovni vytvorený pre rozšírené použitie. Vyznačuje sa jednoduchá štruktúrou. Procesné orientované jazyky patria aj spoločnosti Beysik. Je to považované za jeden z najčastejšie používaných programovaní. Príklad iného procedurálneho orientovaného jazyka - SI. Spočiatku bola vytvorená pre OS UNIX. Jazyk C ++ bol na svojom základe vytvorený, doplnený objektovo orientovanými programovacími nástrojmi. Ďalším jazykom patriacim do posudzovanej kategórie je Pascal. Často zapojené aj do programovania odbornej prípravy. Možnosti tohto jazyka umožňujú, aby sa používali ako veľmi silný nástroj na rozvoj profesionálnych druhov softvéru.

Problémovo orientované jazyky

Patrí medzi ne LISP, Prolog. Prvý jazyk bol vyvinutý v roku 1962 - niekoľko rokov po vytvorení Fortran. Považuje sa, takým spôsobom ako druhá v histórii. Aktívne sa zapájajú ako nástroj pre prácu programátorov s reťazcami znakov. V praxi sa LISP použil v systémoch klasifikovaných ako expert, ako aj tie, ktoré boli určené na analytické výpočty. Prolog bol široko používaný v oblasti logického programovania. V praxi, najčastejšie zapojené do riadenia algoritmov umelej inteligencie v príslušných systémoch.

Objektovo orientované jazyky

Teraz študujeme príklady programovacích jazykov na vysokej úrovni, ktoré sa vzťahujú na kategóriu objektovo orientovaného. Medzi tými - Visual Basic, Delphi, Visual Fortan, poznamenal nad C ++, ako aj Prolog ++. V skutočnosti sú všetky z nich založené na procedurálne orientovaných jazykoch. Predpokladá sa však, že je to významný doplnok k vizuálnym prvkom riadenia s cieľom následného vypracovania potrebných algoritmov vývojármi zvyknutými na iné nástroje. Prvý programovací jazyk na vysokej úrovni - FORTRAN - môže byť študovaný experti prostredníctvom možností vizuálneho FORTRAN. Podobný spôsob môže rýchlo zvládnuť základňu alebo prolog.

Vykonáva sa, zase, keď používate programovanie Delphi v jazyku Pascalu na vysokej úrovni. Existuje veľký počet iných prostredí vývoja softvéru, klasifikovaných ako objektovo orientovaný jazyk. Táto oblasť rozvojových technológií sa aktívne rozvíja.

Fortran a LISP - prvé a druhé jazyky na vysokej úrovni

Budeme študovať viac, pretože prvý programovací jazyk na vysokej úrovni sa objavil - Fortran, rovnako ako Lisp, považovaný za druhú. V roku 1954, vývojári z IBM, na čele s John Bacusom, vytvorili jazyk, ktorým programátori boli schopní významne zmierniť interakciu s PC, ktorý sa doteraz uskutočnil prostredníctvom príkazov alebo assembler. Bol nazývaný Fortran a čoskoro sa stal známym v ZSSR pod Russifiedom bodu. Fortran sa stal populárnym nástrojom pre vedecké výpočty.

Hlavným revolučným prvkom navrhovaným špecialistom IBM, sa stal vlastne rovnakým kompilátorom, navrhnutý tak, aby bol alternatívou k assembler. V prvých rokoch praxe písania programov pri používaní FORTRAN, mnohí vývojári považovali kompilátor, ktorý nie je celkom úspešným riešením, v prvom rade, pokiaľ ide o náklady práce. Mnohé strojové kódy boli skutočne pripravené jednoduchšie, ako keď je prekladateľ zapojený. Avšak, ako rýchle zvýšenie výkonu počítača, programátori sa začali uvedomiť, že bez použitia kompilátorov, efektívny softvér, ktorý bude plne používať výpočtový výkon PC, aby ste vytvorili mimoriadne problematické. Rozvíjali sa teda začiatky vývojárov z IBM. Hlavné syntaktické štruktúry programovacieho jazyka na vysokej úrovni v mnohých prípadoch sa pri vytváraní nových riešení začali používať ako základ.

Príkladom dosiahnutia praktických výsledkov vo vývoji koncepcií stanovených v Fortran možno považovať za vytvorenie LISP. Tento jazyk bol vyvinutý v roku 1958, však získal širokú slávu o niečo neskôr - v šesťdesiatych rokoch. LISP bol vyvinutý John McCarthy a publikoval v jednom z populárnych časopisov pre IT špecialistov. Hlavným účelom posudzovaného jazyka je spracovávať zoznamy. LISP sa stal populárnym v rozvojovom prostredí umelých inteligenčných systémov. Jazyky, ako napríklad plánovač, schéma, ako aj spoločný LISP, boli vytvorené. Tiež poskytol významný vplyv na mnoho moderných nástrojov na vývoj softvéru. Štruktúra programovacích jazykov na vysokej úrovni, populárne dnes, je do značnej miery na základe algoritmov Fortran a Lisp.

Bude však zaujímavé, ale zvážiť iné prístupy k klasifikácii zvážených nástrojov nástrojov na vývoj softvéru.

Univerzálne jazyky na vysokej úrovni

Takmer, moderní experti prideliť univerzálne jazyky na vysokej úrovni. Patrí medzi ne najmä tie, ktoré boli vyvinuté v 60. rokoch. Kľúčové charakteristiky:

Orientácia na širokú škálu úloh (prvá zo všetkých súvisiacich s výpočtovým);

Veľký počet jazykových štruktúr a algoritmov;

Význam nielen pre jeho čas, ale aj pre modernú etapu vývoja počítačových zariadení;

Podpora v príslušných jazykoch imperatívnej metodiky.

Univerzálne jazyky sú základom príslušného priemyslu pre rozvoj IT. Je možné poznamenať, že doteraz nemajú priame analógy v časti vnútornej štruktúry. V skutočnosti to do značnej miery vysvetľuje význam použitia relevantných jazykov v moderných objektovo orientovaných rozhraniach. Vo všeobecnosti vo všeobecnosti v označených jazykoch - typ údajov. Tento faktor do značnej miery predurčuje svoju všestrannosť. Medzi najpozoruhodnejšie vlastnosti jazykov patriacich do kategórie univerzálnej kontinuity. Historicky neskoršie jazyky sú teda zvyčajne založené na koncepciách predchodcov.

Unikátne jazyky

Niektorí experti IT prideľujú v nezávislej kategórii "Unikátne jazyky". Medzi tými: APL, COBOL, FORCH, SETL, ako aj CLU. Aká je ich špecificita?

Najdôležitejším aspektom APL je zapojenie polí (vektory a matrice) ako kľúčový konštrukčný typ. Špecifiká jazyka COBOL - v orientácii na komerčnej sfére. Odporúča sa teda používať pri riešení problémov spojených s štandardizovaným formátom reprezentácie výsledkov. Jazyk sa vyznačuje použitím softvérových záznamov Postfix, ako aj pomocou štýlového notácie. V jazyku SETL sa súbory hodnôt používajú ako jeden z kľúčových typov údajov. Programovací jazyk na vysokej úrovni je tiež CLU. Jeho hlavnou funkciou je použitie koncepcie práce s abstraktnými typmi údajov. Mnohí IT špecialisti vidia logický vznik nových riešení založených na jedinečných jazykoch - ako napríklad objektovo orientované COBOL.

Vybavenie Paralelné programovanie

Táto kategória môže obsahovať obrovské množstvo riešení. Na druhej strane, paralelné programovacie jazyky môžu mať veľký počet dôvodov na klasifikáciu. Napríklad spôsob organizovania procesov. Táto základňa zahŕňa klasifikáciu prostriedkov paralelného programovania na základe prítomnosti v nich:

Soprograms;

Pobočiek;

Združenia;

Paralelné konzoly;

Algoritmy práce s procesmi.

Ďalším základom pre klasifikáciu jazykov predmetného typu je metódami synchronizácie procesov. Zodpovedajúce roztoky teda môžu zahŕňať:

Semafory;

Monitory;

- "RANDEVU";

Kritické časti;

Postupy vzdialenej výzvy;

Transakcie súvisiace s kategóriou atómové.

Jazyky typu typu zahŕňajú Modula-2, blaženosť, súbežný Pascal, DP, Argus.

Jazyková rodina C.

Vyššie sme považovali za príklad na vysokej úrovni programovacieho jazyka, ako je riešenie ako C. V skutočnosti tvorí celú rodinu. Jazyky patriace k nemu sú súkromné \u200b\u200bštruktúry C. Takže jeho pridanie k rôznym objektovo orientovaným komponentom viedlo k rozvoju C ++. Po značnom filtrovaní radu C stavby sa objavila Java. Treba poznamenať, že Java bola vytvorená v mnohých smeroch pod vplyvom koncepcií projektu Oberon, ktorý spravuje NIKLAUS Wirth, tvorca jazyka Pascal. Vzťahuje sa na vysokej úrovni JavaScript na javascript na vysokej úrovni? Samozrejme, áno, napriek Narringsens aplikácie - ako nástroj na vývoj webových stránok. Ale programovacie jazyky na vysokej úrovni nezahŕňajú, najmä HTML, XML a SGML. Sú klasifikované ako hypertextové značkové nástroje.

Rodina jazyka Pascal

Programovacie jazyky na vysokej úrovni Pascal tiež tvoria samostatnú rodinu. Na základe Pascalu bol skutočne vytvorený Oberon, klasifikovaný ako typ objektovo orientovaného typu. Kľúčová vlastnosť Oberon - v schopnosti zabezpečiť bezpečnosť typov. Nepočítanie Oberon, jazyky rodiny Pascal možno pripísať Modula-2, ako aj komponentom Pascal.

Rodina jazyka ADA

Základné v príslušnej kategórii jazykov - objednané americkým ministerstvom obrany ADA. Bola vytvorená koncom 70. rokov - začiatkom 80. rokov. Charakterizovaný veľká kvantita Funkcie, príležitosti, univerzálnosť. Rodina ADA zahŕňa riešenia, ako je CEDAR, MODULA 3.

Jazyková rodina Simula

Jazyk Simula je distribuovaný v programových odvetviach spojených s moditačným modelovaním. Špecifickosť vhodných riešení - pri zapojení konkrétneho jadra. Jeho použitie vám umožňuje aplikovať rôzne rozšírenia prispôsobené jednej alebo inej aplikácii. Na základe simulu bol vytvorený objektovo orientovaný jazyk SmallTalk, ako aj beta, charakterizovaný schopnosťou spojiť sa v rámci jednej abstrakcie algoritmov, čo odráža prácu s údajmi, postupmi a kontrolou. BETA Objekty môžu byť zvážené v inom kontexte, napríklad ako premenné, funkcie alebo paralelné systémy.

Názov správy

Moderné programovacie jazyky a ich použitie

Autor projektu

Štruktúra projektu

● Klasifikácia programovania jazyka

● Klasifikácia programovania jazykov

● Prehľad jazykov programovania

● Užitočné zdroje

Klasifikačná schéma Programovacie jazyky

Klasifikácia programovacích jazykov

Procesné programovanie - Existuje odraz pozadia Nymanovsk architektúry počítača. Program napísaný v procedurálnom jazyku je postupnosť príkazov, ktoré určujú algoritmus riešenia problémov. Hlavnou myšlienkou procedurálneho programovania je použitie pamäte pre ukladanie dát. Hlavný príkaz priraďuje, ktorý je určený a mení sa pamäť počítača. Program konverzie obsahu pamäte zmenou zo zdrojového stavu na výsledok.

Existujú podobné programovacie jazyky:

 Fortran Jazyk bol vytvorený na začiatku 50. rokov 20. storočia na programovanie vedeckých a technických úloh;

 COBOL - vytvorené koncom 60. rokov 20. storočia, aby riešili problémy spracovania veľkých množstiev údajov uložených na rôznych nosičoch údajov;

 Algol (1960) je viacúčelový pokrokový programovací jazyk. Prvýkrát sa zaviedli pojmy "blokovej štruktúry programu" a "dynamická distribúcia pamäte";

 V polovici 60. rokov 20. storočia bol vytvorený špecializovaný programovací jazyk pre začiatočníkov - Basic. Vyznačuje sa jednoduchosťou vývoja a prítomnosti univerzálnych prostriedkov na riešenie vedeckých, technických a ekonomických úloh, ako aj úlohy, napríklad hier.

Všetky jazyky uvedené vyššie boli zamerané na rôzne triedy úloh, ale boli tak či onak alebo iní boli viazané na špecifickú počítačovú architektúru.

 V rokoch 1963-1966 bol vytvorený viacúčelový univerzálny jazyk PL-1. Tento jazyk je dobre prispôsobený pre výskum a plánovanie výpočtových procesov, modelovanie, riešenie logických úloh, vývojom matematických systémov podpory.

 Pascal jazyk (Pascal) (1968-1971gg) - Procesný programovací jazyk je najobľúbenejší pre PC, ktorý je v súčasnosti úspešne aplikovaný. Pascal jazyk je založený na spoločnej úlohe súkromného (jednoduchšie a menej v objeme). Základné princípy, s ktorými má Pascal, môžu byť: a) štrukturálne programovanie, ktoré je založené na používaní podprogramov a nezávislých dátových štruktúr; b) programovanie "zhora nadol", keď je úloha rozdelená na jednoduché, nezávisle riešené úlohy. Potom je riešenie počiatočného problému úplne zaseknutý.

 Na zákroku Programovacie jazyky zahŕňajú jazyk pekla (1979 d), jazyk je pomenovaný po prví programátor DOOMY BAIRONAYERS. Obsahuje modulárnosť štruktúr.

Jazyk SI (začiatok 70. rokov) sa vzťahuje aj na procesné programovacie jazyky. Jeho počiatočná možnosť bola plánovaná ako jazyk na implementáciu operačného systému UNIX namiesto Assembler. Jednou z funkcií jazyka SI je, že rozdiely medzi výrazmi a prevádzkovateľmi sú vyhladení, čo ho prináša do funkčných programovacích jazykov. Okrem toho neexistuje žiadny koncept postupu v jazyku C a použitie podprogramov je založené na koncepcii funkcie, ktorá môže kombinovať schopnosti postupu. Na jednej strane, na sade kontrolných štruktúr a dátových štruktúr, možno pripísať jazykom na vysokej úrovni a na druhej - má súbor prostriedkov priameho prístupu k počítačovým funkčným uzlom, čo znamená, že to môže ako operačný jazyk.

Objektovo orientované programovanie (OOP) - Toto je metóda programovania, keď používate hlavné prvky programov, sú objekty. V programovacích jazykoch sa koncepcia objektu implementuje ako súbor vlastností (dátové štruktúry charakteristické pre tento objekt), metódy ich spracovania (podprogramy pre zmenu ich vlastností) a udalostí, pre ktoré tento objekt Môže reagovať a, čo vedie spravidla zmenu vlastností objektu. Kombinácia údajov a spracovanie ich spracovania spracovania v jednom objekte sa nazýva enkapsulácia a je jedným z najdôležitejších princípov OOP.

Ďalšou základnou koncepciou je trieda. Trieda je šablóna, na základe ktorej môže byť vytvorený špecifický programový objekt, popisuje vlastnosti a metódy, ktoré určujú správanie objektov tejto triedy. Každý špecifický objekt, ktorý má štruktúru tejto triedy, sa nazýva inštancia triedy.

Ďalšie najdôležitejšie princípy OOP sú dedičstvo a polymorfizmus. Dedičstvo zahŕňa vytvorenie nových tried na základe existujúcich a umožňuje dieťaťu mať potom, aby mal (zdediť) všetky vlastnosti materskej triedy.

Polymorfizmus znamená, že sa narodili zariadenia, ktoré majú informácie o tom, ktoré metódy by mali používať v závislosti od toho, ktoré reťazce sú v ktorých sú.

Ďalším hlavným princípom OOP je modularita - objekty priložte plnú definíciu svojich vlastností, žiadne definície metód a vlastností by nemali byť umiestnené mimo nej, to robí bezplatné kopírovanie a zavedenie jedného objektu k ostatným.

Najmodernejšie programovacie jazyky sú C ++ a Java. Od polovice 90-tych rokov sa mnohé objektovo orientované jazyky implementujú ako vizuálne dizajnové systémy, v ktorých je časť rozhrania softvérový produkt Vytvorené v dialógu, prakticky žiadne operátori softvéru na písanie. Objektovo orientované vizuálne dizajnové systémy zahŕňajú vizuálne základné, delphi, C ++ Builder, Visual C ++. Jazyk VBA (Visual Basic for Application) - Jazyk aplikácie Microsoft Office. (Excel, Word, Power Point atď.). VBA je v súlade s hlavnou syntaxou pravidiel jazyka a programovania základných dialektov, umožňuje vytvárať makrá na automatizáciu vykonávania určitých operácií a grafické rozhranie Integrácia používateľov medzi rôznymi softvérovými produktmi.

Deklaratívne programovacie jazyky

Tieto zahŕňajú funkčné a logické jazyky Programovanie. Funkčné programovanie je spôsob, ako vypracovať programy, v ktorých je jediná akcia funkčným volaním. Funkčné programovanie nepoužíva pamäť ako umiestnenie pre ukladanie dát, a preto sa nepoužívajú prechodné premenné, priradenie a cykly. Kľúčovým konceptom vo funkčných jazykoch je výrazom. Program napísaný vo funkčnom jazyku je postupnosť opisu funkcií a výrazov. Výraz je vypočítaný informačným komplexom na jednoduché. Všetky výrazy sú zaznamenané vo forme zoznamov. Prvým jazykom bol LISP (LISP, spracovanie zoznamu - spracovanie zoznamov) bol vytvorený v roku 1959. Tento jazyk vám umožňuje spracovať veľké množstvo textových informácií. Logické programovanie je programovanie z hľadiska logiky. V roku 1973 bol vytvorený jazyk umelej inteligencie Prolog (Prolog) (Programming in Logic). Prologový program je založený na postupnosti faktov a pravidiel, potom súhlas, že Prolog sa snaží dokázať pomocou pravidiel. Samotný jazyk hľadá riešenie pomocou metód vyhľadávania a porovnávania, ktoré sú v ňom položené. Logické programy Žiadna vysoká rýchlosť sa líši, pretože proces ich vykonávania sa znižuje na konštrukciu priamych a reverzných reťazcov uvažovania s rôznymi metódami vyhľadávania.

Prehľad programovacích jazykov

Assembler

Počítačové programovacie jazyky sú rozdelené do 2 hlavných skupín:

1) nízkoúrovňové jazyky;

2) jazyky na vysokej úrovni.

Jazyky na nízkej úrovni zahŕňajú jazyky assedbler. Dostali svoje meno v mene Systémového programu Assembler, ktorý konvertuje zdrojové programy napísané v takýchto jazykoch priamo k kódom príkazov stroja. Súčiastky Tu sú operátori, a výsledok zostavy poradie príkazov stroja Language Assembler kombinuje výhody jazyka príkazov stroja a niektoré vlastnosti jazykov na vysokej úrovni. Assembler poskytuje možnosť použitia symbolických mien v zdrojovom programe a eliminuje programátor z únavnej práce (nevyhnutné pri programovaní v jazyku príkazov stroja) na distribúcii pamäte počítača pre príkazy, premenné a konštanty.

Assembler vám umožňuje flexibilne a plne využiť technické schopnosti počítača, ako aj jazyk príkazov stroja. Zdrojový prekladateľ v assembler je jednoduchší ako prekladateľ potrebný pre programovací jazyk na vysokej úrovni. V Assembler môžete napísať tak efektívnu veľkosť a čas na vykonanie programu, ako aj program v jazyku príkazov stroja. Táto dôstojnosť chýba v jazykoch na vysokej úrovni. Tento jazyk sa často používa na programový systém v reálnom čase. technologické procesy a vybavenie, zabezpečenie prevádzky informácií a meracích komplexov. Takéto systémy majú typicky vysoké požiadavky na objem obsadenej pamäte stroja. Jazyk Assembler je často doplnený pomocou tvarovania makromán, z ktorých každá je ekvivalentná celej skupine príkazov stroja. Takýto jazyk sa nazýva jazyk macroassmler. Použitie blokov makovej "stavby" a prináša jazyk assemblera na jazyk na vysokej úrovni. Jazyk závislý od montáže, t.j. odráža charakteristiky architektúry konkrétneho typu počítača

Pazd

Pascal programovací jazyk vyvinutý profesorom Katedry počítačového inžinierstva Švajčiarskeho Federálneho inštitútu technológie Nikolas Panny Márie v roku 1968 ako alternatíva k existujúcemu a všetkým komplikovaným programovým jazykom, ako je PL / 1, Algol, Fortran. Intenzívny rozvoj Pascal viedol k vzhľadu v roku 1973 jeho štandard vo forme revidovanej správy a počet prekladateľov z tohto jazyka v roku 1979 prekročil 80. Na začiatku 80. rokov, Pascal ešte posilnil svoju pozíciu s príchodom MS -Pascal a Turbo Prekladatelia -Pascal pre PEVM. Od tejto doby sa Pascal stáva jedným z najdôležitejších a široko používaných programovacích jazykov. Je nevyhnutné, aby bol jazyk už dlho nad rámec rozsahu akademického a úzkym odborným záujmom a používa sa na väčšine univerzít vysoko rozvinutých krajín nielen ako užívateľský nástroj. Najdôležitejšou vlastnosťou Pascal je stelesnená myšlienka štrukturálneho programovania. Ďalšou základnou vlastnosťou je koncepcia dátovej štruktúry ako jednej zo základných pojmov.

Hlavné dôvody popularity Pascal sú nasledovné:

Jednoduchý jazyk vám umožňuje rýchlo zvládnuť a vytvoriť algoritmicky komplexné programy.

Vyvinuté nástroje na prezentáciu dátových štruktúr poskytujú pohodlie číselných a symbolických a bitových informácií

Prítomnosť špeciálnych techník na vytváranie prekladateľov z Pascalu zjednodušilo ich rozvoj a prispel k rozšírenému jazyku

Optimalizácia vlastností prekladateľov z Pascal vám umožňujú vytvoriť efektívne programy. Toto slúžilo ako jeden z dôvodov, prečo používať Pascal ako jazykový programovací jazyk.

V jazyku Pascal sa implementujú myšlienky štrukturálnych programovania, čo robí program vizuálne a poskytuje dobré príležitosti na rozvoj a ladenie

Bell Labs Zamestnanec Denis Ritchci vytvoril jazyk C v roku 1972 počas spolupráce s Ken Thompsonom, ako nástroj na implementáciu operačného systému UNIX, avšak popularita tohto jazyka rýchlo získala rámec konkrétneho operačného systému a Špecifické úlohy Systémové programovanie. V súčasnosti nemožno akékoľvek inštrumentálne a operačný systém považovať za úplný, ak jeho zloženie nezahŕňa jazykovací prostriedok C. Ritchee neplodal SI jednoducho z hlavy - prototyp bol jazyk BI, ktorý bol vyvinutý Thompsonom. Programovací jazyk SI bol vyvinutý ako nástroj pre lekárov. V súlade s týmto hlavným cieľom autora bolo vytvoriť pohodlný a užitočný jazyk vo všetkých ohľadoch.

Si je systém systémového programátora a umožňuje hlboko stúpať do najčastejších mechanizmov na spracovanie informácií o počítači. Hoci jazyk vyžaduje programátora vysokej disciplíny, nie je prísny vo formálnom nárokoch a umožňuje stručné formulácie.

C - Moderný jazyk. Zahŕňa tieto návrhy riadenia, ktoré sú odporúčané teóriou a praxou programovania. Jeho štruktúra povzbudzuje programátor, aby používal dizajn smerom nadol, konštrukčné programovanie a krok za krokom.

C - Výkonný a flexibilný jazyk. Väčšina operačného systému UNIX, kompilátorov a tlmočníkov Fortranových jazykov, Pascal, LISP a BAISIK sú napísané presne s jeho pomocou.

C - Praktický jazyk. Je dostatočne štruktúrovaný na udržanie dobrého programovacieho štýlu a zároveň nie je spojené s úzkymi obmedzeniami. V istom zmysle je jazyk SI najjednoduchší, pretože Okrem súboru prostriedkov, ktoré sú obsiahnuté v moderných programovacích jazykoch na vysokej úrovni (štrukturálna, modularita, špecifické typy údajov), obsahuje softvér pre programovanie prakticky na úrovni assembler. Veľký súbor operátorov a prostriedkov vyžaduje, aby programátor opatrnosť, presnosť a dobrá znalosť jazyka so všetkými IHO výhodami a nevýhodami.

C ++ sa objavil na začiatku 80. rokov. Vytvoril Bierian Stuchastrap s počiatočným účelom zachrániť seba a svojich priateľov z programovania na assembler, SI alebo rôzne iné jazyky na vysokej úrovni.

Podľa autora jazyka je rozdiel medzi ideológiou SI a C ++ približne nasledujúcim spôsobom: Program na C odráža procesor "Metóda myslenia" a C ++ je metóda myslenia programátora. Reakcia na požiadavky moderného programovania, C ++ sa zameriava na vývoj nových typov údajov na najplnejśejších koncepciách zvolenej oblasti vedomostí a úloh aplikácie. Trieda je kľúčovým konceptom C ++. Popis triedy obsahuje popis údajov potrebných na reprezentáciu objektov tohto typu a súbor operácií na prácu s podobnými objektmi.

Na rozdiel od tradičných štruktúr C a Pascal sú členovia triedy nielen údaje, ale aj funkcie. Funkcie - členovia triedy majú privilegovaný prístup k údajom v rámci objektov tejto triedy a poskytujú rozhranie medzi týmito objektmi a zvyškom programu. S ďalšou prácou nie je potrebné si pamätať na vnútornú štruktúru triedy a mechanizmus prevádzky vstavaných funkcií. V tomto zmysle je trieda podobná elektrickým nábytkom - málo ľudí vie o jeho zariadení, ale každý vie, ako ho používať.

C ++ Jazyk je nástroj programovanie objektov, najnovšie metódy navrhovania a implementácie programov, ktoré v súčasnom desaťročí pravdepodobne nahradia tradičné procesné programovanie. Hlavným cieľom Stvoriteľa jazyka Dr. Bierna Strastard bol vybavený konštrukciami C ++, čo umožňuje zvýšiť produktivitu programátorov a uľahčiť proces zvládnutia veľkých softvérových produktov.

Abstrakcia, implementácia, dedičstvo a polymorfizmus sú potrebné vlastnosti, s ktorými jazyk C ++ má, takže nie je len univerzálny, ako aj jazyk C, ale je jazyk objektu. Fortran Fortran je široko distribuovaný jazyk, najmä medzi užívateľmi, ktorí sa zaoberajú numerickým modelovaním. Toto je vysvetlené niekoľkými dôvodmi:

Existencia obrovských finančných prostriedkov na uplatňované programy na pevnosť akumulované v priebehu rokov, ako aj prítomnosť obrovské číslo programátori, ktorí tento jazyk efektívne používajú;

Prítomnosť efektívnych prekladateľov Morhone na všetkých typoch počítača a verzia pre rôzne stroje je celkom štandardizovaná a prenos programov zo stroja na stroj zvyčajne nie je veľký;

V počiatočnej orientácii Fortran na fyzické a matematické a technické aplikácie; Najmä sa prejavuje, že po dlhú dobu zostal jediným jazykom so zabudovaným integrovaným typom premenných a veľkým množstvom vstavaných funkcií na prácu s takýmito premennými.

V uplynulom období sa vytvorila nová metodika a programová filozofia. Od začiatku 70. rokov, Ford bol zaslúžene kritizovaný. V roku 1977 bol prijatý nový štandard FORTRAN-77. Trvalo dlho, kým si vytvoril nový štandard, ale teraz je už možné predpokladať, že jeho vývoj je dokončený a nový štandard FORTRAN-90 začal vstúpiť do praxe užívateľov URTHRAN. Iba na počítačoch IBM počítačov Existuje napríklad niekoľko prekladateľov, WATFORT, LAP-FORTRAN, atď. Ale najväčšia distribúcia na strojoch tohto typu dostala rôzne verzie prekladateľa FORTRAN-77. Prekladateľ MS-FORTRAN 5.0 vydaný v roku 1990 takmer plne vyhovuje štandardu Fortran-90. Väčšina veľkých vedeckých a technických aplikačných programov sú napísané na Fortran, pretože má tolerovateľnosť a stabilitu, ako aj vďaka prítomnosti vstavaných matematických a trigonometrických funkcií. Ďalšou, neoddeliteľnou súčasťou akéhokoľvek aplikačného programu v spoločnosti Fortran je rozšírená grafická knižnica, ktorá umožňuje použitie rôznych grafických údajov a obrázkov.

Jazyk bol vytvorený hlavne v rokoch 1975 - 1980 v dôsledku veľkého projektu, ktorý vykonáva ministerstvo obrany USA na vytvorenie jedného programovacieho jazyka pre tzv. Vstavané systémy (tj riadiace systémy automatizovaných komplexov pracujúcich v reálnom čase) . V prvom rade boli určené na kontrolné systémy na mieste riadenia vojenských objektov (lode, lietadlá, nádrže, rakety, škrupiny atď.). Rozhodnutia prijaté autormi preto nepovažujú univerzálne. Musia byť vnímaní v kontexte funkcií vybranej oblasti predmetu. Jazyk adaplatu vznikol v dôsledku medzinárodnej súťaže jazykových projektov, ktoré sa konalo v rokoch 1978-1979. Účastníci by mali byť spokojní dosť tvrdé, navrhnuté pod záštitou amerického ministerstva obrany s požiadavkami. Zaujímavé je, že všetky jazyky, ktoré prišli do posledných kôl tejto súťaže, boli založené na Pascal. V tomto ohľade môže byť peklo predtým charakterizované ako Pascal, ktorý sa berie do úvahy päť základných požiadaviek uvedených vyššie. Zároveň autori šli hlavne pozdĺž cesty expanzie Pascalu s novými prvkami. V dôsledku toho sa ukázalo výrazne zložitejší jazyk.

Kobol.

COBOL je relatívne starý jazyk, ktorý je určený predovšetkým na výskum v ekonomickej sfére. Jazyk vám umožňuje efektívne pracovať s veľkým počtom údajov, je nasýtený rôznymi schopnosťami vyhľadávania, triedenia a distribúcie. O širokouhlým programom COBOL anglického jazyka, Hovoria, že sú zrozumiteľné aj pre tých, ktorí nemajú vlastný COBOL, pretože texty v tomto programovacom jazyku nepotrebujú žiadne špeciálne pripomienky. Takéto programy sa nazývajú samo-dokumentáciou. Ďalšie výhody COBOL zvyčajne zahŕňajú jeho štruktúru. Navrhnuté sú dosť výkonné kompilátory z tohto jazyka osobné počítače. Niektoré z nich sú tak účinné, že program Dvadicky ladený na osobnom počítači je ľahko prenosný na veľké počítače.

Zoznam múdry by sa nemalo pripomenúť, že na COBOL je možné naprogramovať iba najjednoduchšie algebraické výpočty. Pre inžinierske výpočty nie je tento jazyk vhodný. Ďalším dôvodom, ktorý do určitej miery obmedzuje rozvoj jazyka, je prítomnosť osobitne vytvoreného priemyselného výboru v Spojených štátoch, ktorá vyrába normy v súlade s vládnou komisiou. Keďže sa to vždy deje v takýchto prípadoch, firmy zaoberajúce sa vývojom softvéru nie sú ponáhľaní prispôsobiť svoje predvalky na prísne požiadavky Komisie, neexistuje konkurencia verzií a nakoniec stratí šírenie jazyka

PL / 1 bol vyvinutý v rokoch 1964-1965 pomocou IBM. PL / 1 sa vzťahuje na počet univerzálnych jazykov, tj umožňuje vyriešiť problémy z rôznych oblastí: číselné výpočty, spracovanie textu, ekonomické úlohy atď. Vytvorené pre numerické výpočty), COBOL (pre ekonomické úlohy), aj keď z viacerých dôvodov, tieto jazyky PL / 1 nemohli byť potlačené.

PL / 1 obsahuje všetky základné návrhy charakteristické pre takzvané jazyky na vysokej úrovni, ako aj rad špecifických prostriedkov, výhodných pre praktické programovanie. Jazyk sa podobá dizajnérovi s veľkým počtom častí - užívateľ je dosť na zvládnutie len tých častí jazyka, ktorý je pre to prakticky potrebný. Jeho operátori sú skôr cisterny, ktoré vám často umožňujú získať záznam programu kompaktnejšie ako v iných jazykoch. Vysvetlenie programátor PL / 1 zmizne akýkoľvek iný jazyk tej istej alebo blízkej triedy.

Zároveň má PL / 1 niekoľko nedostatkov, ktoré bránia štúdiu a používaniu jazyka. Hlavné sú také. Po prvé, existuje mnoho duplicitných prostriedkov z nich ťažké zapamätať si, že nie je jasné, že pri aplikácii, navyše znižuje rýchlosť vysielania aj rýchlosť vykonávania programu. Po druhé, programy nie sú úplne samostatne.

Modul

Môžeme predpokladať, že história jazyka modulu začína v roku 1980, keď NIKLAUS Wirth, jeden z vynikajúcich informačných špecialistov teórie, známy pre väčšinu počítačových technik špecialistov, najmä ako tvorca Pascalu, publikoval popis nového programovacieho jazyka nazvaného modul. Na rozdiel od Pascalu, ktorý bol na inteligenčnom jazyku pre programovanie vzdelávania, modul od samého začiatku bol jazyk pre profesionálne systémový programátoriPokračovaním v najlepších tradíciách svojho predchodcu a obohacuje ich novými myšlienkami, ktoré spĺňajú takéto požiadavky na programovanie jazykov ako štruktúra, modularita a schopnosť rozširovať. Rovnako ako mnoho ďalších programovacích jazykov, modul bol vystavený evolúcii, počas ktorého jeho počiatočný názov bol prepracovaný v mene modulu-2. Súčasne s vývojom jazyka modulu boli pre neho vytvorené nové kompilátory, ale nikto z nich nemohol súťažiť s najlepšou realizáciou jazykov Pascal a SI, napríklad vyvinutý Borlandom. V tomto prechodnom jazyku modulu bol najlepší čas považovaný za implementovaný spoločnosťou Logitech, ktorý v ich vlastnostiach stráca Turbo Pascal a Turbo Si. Iba v roku 1988, po výskyte najvyššej rýchlostného systému na americkom trhu, modul-2 vzal hodné miesto medzi procesnými jazykmi určenými na programovanie systému. Inkustrácia popularity najvyššej rýchlostného systému prispela niekoľko faktorov: pohodlné a navyše operačné prostredie je ľahko meniteľné na žiadosť používateľov, rýchlym kompilátorom a selektívnym editorom pripojení. Ale najvýznamnejšie sa to ukázalo vytvorené programy Rozdielne vysokou rýchlosťou a obsadili veľa miesta v pamäti.

Beysik

Základné - Začiatočník je univerzálny symbolický kód inštrukcií - "Univerzálny symbolický kód pokynov pre začiatočníkov"). Priamy potomok Fortran a stále najobľúbenejší programovací jazyk pre osobné počítače. Becisik sa objavil v roku 1963 (tzv. Autor by bol ťažké, ale hlavná zásluha vo svojom vzhľade nepochybne patrí Američanom John Kemen a Thomas Kurtu). Podobne ako akékoľvek výhody, jednoduchosť basik sa otočila, najmä v skorších verziách štruktúrovania ťažkostí; Okrem toho BAISIK neumožnil rekurziu - zaujímavú techniku, ktorá vám umožní vykonávať efektívne a zároveň krátke programy.

Boli vyvinuté silné baseballové kompilátory, ktoré poskytujú nielen bohatý slovník a vysokú rýchlosť, ale aj možnosť štrukturálneho programovania. Podľa niektorých programátorov sú najzaujímavejšie verzie GWbasic, Turbo-Basic a Quick Basic.

Naraz, vzhľad rýchleho základného znamenal narodenie druhej generácie programovacích systémov v jazyku Baysik. Poskytla možnosť modulárneho a procedurálneho programovania, vytváranie knižníc, zostavovania hotových programov atď., Ktoré ho priniesli na úroveň takýchto klasických programovacích jazykov, ako sú SI, Pascal, Fortran atď., Z dôvodu nedostatku Úradnej normy jazyka Baysik, jeho implementácia rýchly základ sa stal skutočným štandardom. Bezpodmienečné vodcovia medzi rôznymi verziami spoločnosti Baysik boli rýchle základné 4.5 a PDS 7.1 Microsoft, ktoré sa objavili na konci 80. rokov.

LISP.

LISP jazyk navrhol J. McCarthy v práci v roku 1960 a zameral sa na rozvojové programy na riešenie problémov non-numerickej povahy. Anglický názov tohto jazyka - LISP je skratka výrazu spracovania zoznamu (spracovanie zoznamov) a dobre zdôrazňuje hlavnú oblasť jeho používania. Koncepcia "zoznamu" sa ukázala byť veľmi hromadná. Vo forme zoznamov je vhodné zastupovať algebraické výrazy, grafy, prvky konečných skupín, súpravy, výstupných pravidiel a mnoho ďalších zložitých objektov. Zoznamy sú najflexibilnejšou formou prezentácie informácií v počítačoch. Nie je prekvapujúce, že existuje pohodlný jazyk špeciálne navrhnutý na riešenie zoznamov, rýchlo získal popularitu.

Po výskyte LISP sa rôzni autori navrhli množstvo ďalších problémov s algoritmickými jazykmi orientovanými v oblasti umelej inteligencie, medzi ktorými je možné poznačiť, snobol, reflux, prolog. To však nezabránilo LISP zostať najobľúbenejším jazykom na riešenie týchto úloh. Počas takmer štyridsaťročných histórie svojej existencie sa objavil počet dialektov tohto jazyka: spoločný LISP, Mac LISP, Inter LISP, štandardný LISP, atď Rozdiely medzi nimi nenesú základnú povahu a sú určené najmä na mierne zníženie RÔZNOTNOSTI ZAPOJENÝCH VSTAVOVANÝCH funkcií a určitý rozdiel vo forme nahrávacích programov. Preto programátor, ktorý sa naučil pracovať na jednom z nich, môže ľahko zvládnuť a iné. Veľkou výhodou LISP je jeho funkčná orientácia, t.j. Programovanie sa vykonáva pomocou funkcií. Okrem toho sa funkcia chápe spravidla, porovnávajúca prvky niektorých tried, zodpovedajúce prvky inej triedy. Samotný proces porovnania nemá vplyv na prevádzku programu, je dôležitá len jeho výsledok - hodnota funkcie. To vám umožní jednoducho písať a debug veľké softvérové \u200b\u200bkomplexy. Jasnosť programov, jasné rozdiel medzi ich funkciami, absencia vedľajších účinkov CaerZ, keď sú vykonané povinné požiadavky Programovanie takýchto logicky zložitých úloh, ktoré sú úlohami umelej inteligencie. Programovacia disciplína sa stáva obzvlášť dôležitou, keď nie jedna osoba pracuje na programe, ale celá skupina programátorov.

Programovací jazyk LISP je určený predovšetkým na spracovanie. symbolické informácie. Preto je prirodzené, že vo svete LISP sa počet hrá ďaleko od hlavnej úlohy. Hlavné typy údajov v Lispy sa nazývajú "atóm" a "bodu".

Prológ

Logický programovací jazyk je určený na prezentáciu a využívanie vedomostí o určitej oblasti predmetu. Programy v tomto jazyku pozostávajú z určitého súboru vzťahov a jeho implementácia sa zníži na uzavretie nového vzťahu na základe stanovenej. Prolog implementuje deklaratívny prístup, v ktorom stačí opísať úlohu pomocou pravidiel a vyhlásení týkajúcich sa určených objektov. Ak je tento opis pomerne presný, počítač môže nezávisle nájsť požadovaný roztok.

Objekt palu

Objekt PAL je výkonný programovací jazyk. Objekt PAL je objektovo orientovaný, spravovaný udalosťami, vizuálnym programovacím jazykom. Na počiatočnej úrovni funkčnosti objektu PAL môžete vykonávať dátové operácie, vytvoriť špeciálne ponuky, ako aj spravovať reláciu zadávania údajov. Udalosti v objekte PAL Generovanie príkazov, ktoré simulujú účinok používania Paradoxu v interaktívnom režime. Je možné automatizovať často vykonávané úlohy, ako aj cez tabuľky, formuláre a správy o činnostiach, ktoré neboli dostupné v interaktívnej práci. Object Pal tiež poskytuje všetky prostriedky plnohodnotného programovacieho jazyka v prostredie systému Windows. Môžete použiť objektový PAL na vytvorenie dokončených systémov, ktoré implementujú špeciálny systém menu, systém pomoci, ako aj všetky druhy kontrol údajov. V objekte PAL môžete uložiť vývoj v dynamicky zložitej knižnici, prístup, ktorý bude mať niekoľko foriem. Okrem toho môžete vytvoriť komunikáciu s inými dynamickými knižnicami obsahujúcimi program napísaný v takýchto jazykoch ako SI, C ++ alebo Pascal.

Objekt PAL môže byť použitý ako nástroj na vytváranie programov offline. Môžete napísať dokončenú aplikáciu systému Windows a spustiť ho pod Paradox.

Objekt PAL podporuje dynamický mechanizmus výmeny údajov ako klienta aj server. Okrem toho objektový PAL podporuje mechanizmus práce s kompozitnými dokumentmi ako klientom. Okrem toho, čo bolo povedané, je možné zahrnúť multimédiá vo vašej žiadosti, čo poskytuje aplikáciu vykonanú zvukovými a animačnými účinkami.

Vytvorené BBPE, implementácia jazyka DBEEE je úspešná hybridná orientácia objektov a tradičné programovacie metódy. To umožnilo vytvárať systémy pomocou návrhu objektu a používajú konvenčné recepcie na spracovanie záznamov. Veľký úspech spoločnosti B Bohr bol, že veľmi dobre kombinovaný objekt a procedurálne techniky. Prvá verzia pre systém Windows poskytla užívateľovi najvýkonnejší nástroj objektov na trhu s databázovým softvérom. To vám umožní vytvoriť nové triedy objektov, ktoré majú vlastnosti dedičstva, enkapsulácie a polymorfizmu. To tiež umožňuje naprogramovať tieto objekty pomocou tradičných príkazov DBASE, v ideálnom prípade vhodné pre správu jednoduchých databáz tabuľky. To všetko dáva nespornú výhodu - bez toho, aby sa príliš ťažko prechodu na techniky programovania objektov, prechod je tak komplexný, napríklad ako v Paradox DBMS.

Java jazyk vznikol ako súčasť projektu na vytvorenie pokročilého softvéru (softvéru) pre rôzne domáce spotrebiče. Realizácia projektu bola spustená v C ++, ale čoskoro vzniklo množstvo problémov, čo najlepšie znamená boj proti samotnému nástroju - programovací jazyk. Stalo sa zrejmé, že je potrebný programovací jazyk nezávislým od platformy, ktorý vám umožní vytvárať programy, ktoré nemusia zostaviť samostatne pre každú architektúru a možno ho použiť na rôznych procesoroch v rôznych operačných systémoch. Java jazyk bol potrebný na vytvorenie interaktívnych produktov pre internet. V skutočnosti väčšina architektonických riešení prijatých pri vytváraní Java bola diktovaná túžbou poskytnúť syntax podobnú C a C ++. Java používa takmer identické dohody na deklarovanie premenných, prenosových parametrov, operátorov a kontrolovať prúd kódu. Java pridáva všetky dobré funkcie C ++.

Tri kľúčové prvky United v technológii Java

Java poskytuje široké využitie svojich apletov (aplety) - malé, spoľahlivé, dynamické, bez platformy-bezplatné aktívne sieťové aplikácie vložené webstránka. Java applety môžu byť nakonfigurované a distribuované spotrebiteľom s rovnakou ľahkosťou ako akékoľvek dokumenty HTML.

Java vydáva silu objektovo orientovaného vývoja aplikácií, ktorý kombinuje jednoduchú a známe syntax so spoľahlivým a pohodlným vývojovým prostredím. To umožňuje širokému okruhu programátorov rýchlo vytvoriť nové programy a nové aplety.

Java poskytuje programátor bohatý súbor tried objektov pre jasnú abstrakciu mnohých systémových funkcií používaných pri práci s Windows, Network a I / O. Kľúčovým znakom týchto tried je, že poskytujú vytvorenie nezávislej abstrakčnej platformy pre širokú škálu systémových rozhraní.

Programovacie jazyky pre počítačové siete

Programovacie jazyky pre počítačové siete sa interpretujú. Tlmočníci sú pre nich bezplatne distribuované a samotné programy sú v zdrojových textoch. Takéto jazyky sa nazývajú skript - jazyky.

Perl je interpretovaný jazyk vytvorený programátorom manipulácie s veľkým textom a súbormi a dešifrovanými ako praktickým extrakciou a jazykom prehľadu (jazyk pre praktické ťažbu a vykazovanie údajov). Používanie PERL, napríklad môžete vytvoriť skript, ktorý otvorí jeden alebo viac súborov, spracúva informácie a zaznamenáva výsledky.

Perl je jazyk prispôsobený na spracovanie ľubovoľných textových súborov, ktoré im vyberajú potrebné informácie a vydávajú správy. Perl je tiež vhodné na písanie rôznych systémových programov. Tento jazyk sa ľahko používa, účinný, ale je ťažké povedať o tom, že je elegantný a kompaktný. Syntax Perl Expressions je blízko k syntaxiu C. Rekurzia môže byť ľubovoľná hĺbka. Hoci Perl je prispôsobený na skenovanie textových súborov, môže tiež spracovať binárne údaje. Perl umožňuje používať regulárne výrazy, vytvárať objekty, vložiť kus kódu do Perl do softvéru SI alebo C ++, a tiež umožňuje prístup k databázam, vrátane Oracle.

S vynálezom, World Wide Web, Perl sa ukázal byť vynikajúcim nástrojom na interakciu s webovými servermi prostredníctvom spoločného rozhrania brány (CGI) - spoločné interakčné rozhranie. Príkazy Perl môžu ľahko získať údaje z formulára HTML alebo iného zdroja a vykonávať akúkoľvek akciu s nimi.

Jazyk Php. (1995-1997) má prístup k prístupu databázy a používajú tvorcovia dynamických miest po celom svete.

Jazyk TCL / TK. (Koniec 80-tych rokov) sa skladá z výkonných príkazov určených na prácu s abstraktnými objektmi, ktoré nie sú typom a umožňuje vytvárať programy s grafickým rozhraním.

Jazyk Virml (1994) Vytvorené na organizovanie virtuálnych trojrozmerných rozhraní na internete.

Jazyk XML. Od roku 1996 pracuje na vytvorení univerzálneho jazyka štruktúry dokumentov. Môže sa stať náhradou za HTML.

Výkon

Užitočné zdroje

Napísať recenziu AIZILI

Kde je správa?

Recenzia Ranitka.

Odkiaľ je správa?
Všetko bude: -d

Spätná väzba Shamagulovka Elite

Review Mishina Alexander

Skvelá správa. Naučil som sa veľa o programovacích jazykoch.

Recenzia Morozova Alexander

Samozrejme, rád by som videl správu alebo aspoň prezentáciu v akejkoľvek forme.

Predtým, ako chcete študovať nejaký programovací jazyk, musíte niečo vedieť o svojej histórii a kde sa uplatňujú.

Predstavujem si, že krátka recenzia 25 známych programovacích jazykov. Od najznámejšieho k menej populárnemu. Článok sa vykonáva pre nováčikov v oblasti programovania. Môžete si prečítať o každom jazyku a vybrať ten, ktorý sa vám bude páčiť viac.

Predtým, ako začnete učiť programovacie jazyky, odporúčam, aby ste preskúmali priebeh softvéru.

1. JavaScript.

Prototypovo orientovaný scénický programovací jazyk. JavaScript bol pôvodne vytvorený, aby sa webové stránky "nažive". V prehliadači sú pripojené priamo do HTML a hneď po načítaní stránky - okamžite vykonaná.

Keď bol vytvorený jazyk Javascriptu, pôvodne mal iné meno: "Livescript". Ale potom bol jazyk Java veľmi populárny a obchodníci sa rozhodli, že podobný názov by urobil nový jazyk.

Bolo plánované, že JavaScript by bol druh "mladšieho brata" Java. Avšak, príbeh nariadený vlastným spôsobom, Javascript rástol, a teraz je to úplne nezávislý jazyk, s jeho špecifikáciou a Java nemá nič spoločné.

2. Java.


Striktne napísaný objektovo orientovaný programovací jazyk. Java aplikácie sú zvyčajne vysielané na špeciálny bajtový kód, takže môžu pracovať na akomkoľvek počítačovej architektúre pomocou virtuálneho Java Machine.

Výhodou tohto spôsobu vykonávania programov je úplná nezávislosť bajtového kódu z operačného systému a zariadení, ktorá vám umožňuje vykonávať aplikácie Java na ľubovoľnom zariadení, pre ktoré je príslušný virtuálny stroj. Ďalšou dôležitou vlastnosťou JAVA technológie je flexibilný bezpečnostný systém, v ktorom je vykonanie programu plne monitorované virtuálnym strojom.

Spočiatku bol jazyk nazývaný dub ("dub") bol vyvinutý James Gosling na programovanie domácnosti elektronické zariadenia. Následne bol premenovaný Java a začal sa používať na zapisovanie klientskych aplikácií a serverového softvéru.

3. PHP.


Je to spoločný interpretovaný univerzálny jazyk s open source (skriptovací jazyk). PHP bol vytvorený špeciálne pre vývoj webu a kód na to, je možné implementovať priamo do HTML kódu. Syntax jazyka pochádza z C, Java a Perl a je ľahko preskúmať.

Hlavným cieľom PHP je poskytnúť webovým vývojárom s možnosťou rýchlo vytvoriť dynamicky generované webové stránky, avšak oblasť aplikácie PHP nie je obmedzená na to.

4. python

Programovací jazyk na vysokej úrovni sa zameral na zlepšenie produktivity developera, čitateľnosti kódexu a vývoju webových aplikácií. Syntax Python Kernel je minimalizovaná. Kód v Pythone je organizovaný vo funkciách a triedach, ktoré môžu byť kombinované do modulov.

5. C #


Objektovo orientovaný programovací jazyk. Vyvinutý v rokoch 1998-2001 skupinou inžinierov pod vedením Anders Halesberg v spoločnosti Microsoft ako jazyk pre rozvoj aplikácií pre rámcovú platformu Microsoft .NET. C # odkazuje na rodinu jazykov s podobnou syntaxou, ktorej jeho syntax je najbližšie k C ++ a Java.

Jazyk má statické písanie, podporuje polymorfizmus, preťaženie prevádzkovateľov, delegátov, atribúty, udalosti, vlastnosti, generalizované typy a metódy, iterátory, anonymné funkcie s podporou uzáverov, Linq, výnimky, komentáre v XML formáte.

6. C ++.


Kompilovaný, staticky napísaný programovací jazyk všeobecného účelu. Je to jeden z najbežnejších jazykov na svete. Google Chrome.Mozilla Firefox, WinAmp a Adobe Product Line boli navrhnuté s C ++. Okrem toho, niektoré moderné hry a operačné systémy boli vyvinuté na C ++ v dôsledku rýchleho spracovania a kompilácie.

7. RUBY


Jednoduchý a čitateľný programovací jazyk zameraný na vývoj webových aplikácií. Navrhol Yukihiro Matsumto v roku 1995. Jazyk má nezávislý od operačného systému implementáciou multithreading, prísny dynamický typiráciu, smetiar.

Hlavný účel Ruby je vytvorenie jednoduchého a zároveň zrozumiteľných programov, kde rýchlosť programu nie je dôležitá, ale malý vývojový čas, jasnejší a jednoduchosť syntaxe. Jazyk sa riadi "najnižším prekvapením" princípu: Program sa musí správať, pretože programátor očakáva.

8. CSS.


Kaskádové štýlové listy (Kaskádové štýlové tabuľky) Formálny popis Jazyk externý pohľad Dokument napísaný pomocou značkového jazyka.
Väčšinou sa používa ako popis nástroje, návrh vzhľadu webových stránok napísaných pomocou HTML a XHTML Markup Languages, ale môže byť tiež aplikovaný na akékoľvek dokumenty XML.

9. C.


Kompilovaný staticky napísaný programovací jazyk všeobecného účelu. Jazyk C navrhol Dennis Ritchch v roku 1972 v Bell Labs. Je to predchodca takýchto programovacích jazykov ako C ++, Java, C #, JavaScript a Perl. Z tohto dôvodu vedie štúdium tohto jazyka na porozumenie a iné jazyky. Jazyk C sa používa na vývoj aplikácií s nízkou úrovňou, pretože sa považuje za najbližšie k hardvéru.

10. Cieľ-C


Zostavený objektovo orientovaný programovací jazyk používaný spoločnosťou Apple Corporation, postavená na báze smalkového jazyka a paradigmy. Jazyk objektívu-C je náhle jazyk SI, takže kód C je plne chápaný Cover-C kompilátor. Jazyk sa používa predovšetkým pre Mac OS X (kakao) a Gnustep - implementácie otvoreného objektu-orientovaného rozhrania. Jazyk sa používa aj pre iOS (Cocoa Touch).

11. Shell.

Nie je toľko jazyka ako príkazový tlmočník (príkazový jazyk). Jeho skripty sa používajú na automatizáciu aktualizácií softvéru. Obsahuje štandardné návrhy pre cykly, vetvenie, funkcie funkcií. Rodina operačných systémov kompatibilných s operačným systémom UNIX, jazyk Shell sa používa ako štandardný jazyk správy úloh.

12. R.


Programovací jazyk pre štatistické spracovanie údajov a prácu s grafikou, ako aj open source computing softvér ako súčasť projektu GNU. R je široko používaný ako softvér pre analýzu štatistických údajov a skutočne sa stal štandardom pre štatistické programy. Rozhranie príkazového riadka sa používa v R.

13. Perl.


High-Level Interpretabilný dynamický programovací jazyk všeobecného účelu. Názov jazyka je skratka, ktorá je dešifrovaná ako praktická extrakcia a jazyk správy - "praktický jazyk na extrahovanie údajov a vypracovať správy." Hlavnou črtou jazyka je jeho bohaté príležitosti na prácu s textom, vrátane práce s pravidelnými výrazmi, zabudovanými do syntaxe. V súčasnosti sa používa na vykonávanie širokej škály úloh vrátane správy systému, vývoja webového vývoja, sieťové programovanie, hry, bioinformatika, vývoj grafických používateľských rozhraní.

14. Scala


MultiPadigmal Programovací jazyk navrhnutý stručným a typovým bezpečným pre jednoduché a rýchlo vytváranie komponentov softvér, kombinujúci funkčné a objektovo orientované programovanie. Scala - programy sú do značnej miery podobné programom Java a môžu voľne komunikovať s kódom Java.

15. Choďte.


Zostavený viacvláknový programovací jazyk vyvinutý spoločnosťou Google. Jazyk GO bol vyvinutý ako systém systémového programovania na vytvorenie vysoko efektívnych programov pôsobiacich na moderných distribuovaných systémoch a viacjadrových procesoroch. Môže sa považovať za pokus o vytvorenie substitúcie jazyka SI. Pri vývoji sa venovala osobitná pozornosť zabezpečeniu vysoko účinnej kompilácie. GO Programy sú zostavené do objektu kódu a nevyžadujú virtuálny stroj na vykonanie.

16. SQL

Jazyk štruktúrovaných dotazov. Formálny nekoncentrovaný programovací jazyk používaný na vytvorenie, modifikáciu a správu údajov v ľubovoľnej relačnej databáze, spravovanej zodpovedajúcim systémom správy databázy. SQL je primárne informačný logický jazyk určený na opis, zmeny a extrahovanie údajov uložených v relačných databázach. Každá ponuka SQL je buď požiadavka na údaje z databázy alebo prístup k databáze, čo vedie k zmene údajov v databáze.

17. Haskell.


Štandardizovaný čistý funkčný všeobecný programovací jazyk. Je to jeden z najbežnejších programovacích jazykov s odloženými počítačovými jazykmi. Výrazná vlastnosť Jazyk je vážnym postojom k písaniu. Haskell vynikajúci jazyk pre učenie a experimenty s komplexnými funkčnými typmi údajov.

18. SWIFT.


Otvorte MultiParadigmal kompilovaný programovací jazyk všeobecného účelu. Vytvorené spoločnosťou Apple predovšetkým pre iOS a OS X. SWIFT vývojári pracuje s kakaovými a kakaovými dotykovými rámcami a kompatibilný so základným kódom Apple, napísaný na objektívoch-C. Swift si myslel, ako ľahko čítanie a odolnosť voči chybám programátora namiesto tých, ktoré predtým predchádzali objektívom C. Swift požičal dosť veľa z Cieľ-C, ale nie je určená známkami, ale typy premenných, ktoré kompilátorové procesy. Pre podobný princíp, mnohé skriptovacie jazyky fungujú.

19. MATLAB.


High-Level Interpretovateľný programovací jazyk, vrátane dátových štruktúr založených na matriciach, širokej škále funkcií, integrovaného vývojového prostredia, objektovo orientovaných funkcií a rozhraní k programom napísaným v iných programovacích jazykoch. Programy napísané na MATLAB sú dva typy - funkcie a skripty. Funkcie majú vstupné a výstupné argumenty, ako aj ich vlastný pracovný priestor na ukladanie priebežných výsledkov výpočtov a premenných. Skripty tiež používajú celkový pracovný priestor. Obaja skripty a funkcie sú uložené ako textové súbory a sú kompilované do kódu stroja dynamicky.

20. Visual Basic.


Programovací jazyk, ako aj integrované prostredie pre vývoj softvéru, vyvíjané spoločnosťou Microsoft. Jazyk Visual Basic zdedil Duch, štýl a syntax svojho predka jazyk BasicKto má veľa dialektov. Zároveň Visual Basic kombinuje postupy a prvky objektovo orientovaných a komponentov orientovaných programovacích jazykov.

Visual Basic je tiež dobré na nástroj Fast Rad Development Database aplikácie pre operačné systémy Microsoft Windows. Mnohé hotové komponenty dodané s médiom sú navrhnuté tak, aby pomohli programátorovi okamžite začať rozvíjať obchodnú logiku aplikácie, bez toho, aby sa rozptyli jeho pozornosť na písanie kódu Štart programu.

21. Delphi.


Imperatívny, štruktúrovaný, objektovo orientovaný programovací jazyk s prísnymi premennými statickými typmi. Hlavnou oblasťou použitia je písanie aplikovaného softvéru.

Dnes, spolu s podporou 32 a 64-bitového softvéru Windows, implementoval možnosť vytvárať aplikácie pre Apple Mac OS X, ako aj pre Google Android (priamo vykonané na procesore ARM).

22. Groovy.


Objekt-orientovaný programovací jazyk, určený pre JAVA platformu, ako prírastok jazyka Java s funkciami Python, Ruby a SmallTalk. Groovy používa syntax podobnú Java s dynamickou kompiláciou v Code JVM Byte a pracuje priamo s iným kódom Java a knižnicami. Jazyk môže byť použitý v akomkoľvek jazyku Java alebo ako skriptovací jazyk.

23. Visual Basic .NET


Objektovo orientovaný programovací jazyk, ktorý sa dá zobraziť ako iné kolo evolúcie vizuálneho základného, \u200b\u200bimplementované microsoft Platform .NET. Vb.net nemá spätnú kompatibilitu s viac včasná verzia (Visual Basic 6.0). Vývoj projektov starých verzií (* .vbp) je možný až po predbežnej konverzii na formát VB.NET so špeciálnym MASTER (Sprievodca migráciou); Po konverzii sa však vyžaduje základné manuálne vylepšenie textov.

24. D.

MultiPadigmal kompilovaný programovací jazyk vytvorený Walterom Jasníkom z DIGITAL Mars. Spočiatku bola D koncipovaná ako C ++ Reengineering, avšak napriek významnému účinku C ++ nie je jeho možnosť. Tiež jazyk zažil koncepty z programovacích jazykov Python, Ruby, C #, Java, Eiffel.

25. Assembler.


Strojovo orientovaný jazyk s nízkym časom s príkazmi, nie vždy vhodnými príkazmi stroja, ktoré môžu poskytnúť pridané vlastnosti ako macrosman; AutoCode, pokročilé programovacie jazyky na vysokej úrovni, ako sú výrazy, makrá, prostriedky na poskytovanie modularity softvéru.

Jazyk assembler - Systém označenia používaný na odoslanie na čitateľnú formu programov zaznamenaných v strojovom kóde. Jazyk Assembler umožňuje programátorovi používať abecedné mnemické kódy operácií, podľa vlastného uváženia, priraďte symbolické názvy počítačmi s počítačmi a pamäťou, ako aj nastavte užívateľsky príjemné systémy adresovania. Okrem toho vám umožní používať rôzne číslovacie systémy na reprezentáciu číselných konštánt a umožňuje označiť struny programu s štítkami so symbolickými názvami, aby ste ich mohli kontaktovať.

Nezabral som všetky jazyky. Nie sú toľko v dopyte od profesionálnych programátorov. Moja úloha je dokončená, teraz si môžete vybrať vhodný jazyk a dobyť ho. Veľa šťastia vám vo vašich snahách.



Páči sa vám článok? Zdieľaj to