Programovací jazyky

Programovací jazyk umožňuje uživateli počítače popsat kombinací předepsaných slov, výrazů a jednoduchých mechanismů nějaký problém a získat jeho řešení za pomoci počítače.

Vývoj programovacích jazyků

Kompilované jazyky

Kompilované jazyky mají tedy svůj zdrojový kód v jazyce, kterému lidé dobře rozumí. Tento zdrojový kód se musí přeložit do strojového kódu, aby ho bylo možné na procesoru spustit. Tento překlad zajišťuje překladač (kompiler), který přeloží najednou celý program do stroj. kódu. Příkladem kompilovaných jazyků jsou např. jazyk C, C++ nebo Pascal/Delphi.

Výhody kompilace:
Rychlost - Jediné zbrždění spočívá v jednorázové kompilaci, přeložený program poté běží srovatelně rychle, jako kdyby byl napsán např. v ASM.
Nepřístupnost zdroj. kódu - Program se šíří již zkompilovaný, není jej možné jednoduše měnit pokud zároveň nevlastníte jeho zdroj. kód.
Snadné odhalení chyb ve zdroj. kódu - Pokud zdrojový kód obsahuje chybu, celý proces kompilace spadne a programátor je s chybou seznámen. To značně zjednodušuje vývoj.

Nevýhody kompilace:
Závislost na platformě - Program je stále závislý na platformě, tedy na typu procesoru a operačním systému. Zkompilovaný program nemůžeme vzít a přenést na jinou platformu bez toho, aby byl na této platformě zkompilován.
Nemožnost editace - Jakmile se program jednou zkompiluje do zdrojového kódu, nelze ho editovat jinak, než opětovnou kompilací. To pochopitelně platí i pro výše zmíněné jazyky.
Memory management - Vzhledem k tomu, že počítač danému programu nerozumí a jen mechanicky vykonává instrukce, můžeme se někdy setkat s velmi nepříjemnými chybami s přetečením paměti. Kompilované jazyky obvykle nemají automatickou správu paměti a jsou to jazyky nižší (s nižším komfortem pro programátora). Běhové chyby způsobené zejména špatnou správou paměti se kompilací neodhalí.

Interpretované jazyky

Interpretace se snaží řešit problém přenositelnosti programů mezi různými platformami a také přicházejí s vyšším komfortem pro programátora. Interpret funguje podobně, jako kompiler, jen nepřekládá program celý najednou, ale překládá pouze to, co je v danou chvíli potřeba. Tento způsob překladu si můžeme představit tak, že programový kód je čtený po jednotlivých řádcích. Řádek se přeloží a hned vykoná. Poté se přeložený kód zahodí a interpret se přesune na další řádek.
Příkladem interpretovaného jazyka je např. PHP, VBA, JavaScript.

Výhod interpretace
Přenositelnost - Program je plně přenositelný, pokud existuje interpret pro danou platformu, půjde tam zdrojový kód programu spustit.
Jednodušší vývoj - Nabízí komfortní techniky pro vývoj programu. Např.: Správu paměti, za nás dělá tzv. garbage collector . Často také nemusíme ani zadávat datové typy a máme k dispozici vysoce komfortní kolekce a další struktury.
Stabilita - Díky tomu, že interpret kódu rozumí, předejde chybám, které by zkompilovaný program jinak klidně vykonal. Běh interpretovaných programů je tedy určitě bezpečnější.
Jednoduchá editace - Program můžeme vyvíjet po částech a nahrávat na cílové umístění, díky tomu, že se nemusí kompilovat, ho je možné jednoduše editovat "za běhu".

Nevýhody interpretace
Rychlost - Interpretace může být mnohdy velmi pomalá a program tak plně nevyužívá výkon počítače.
Často obtížné hledání chyb - Díky kompilaci za běhu se chyby v kódu objeví až v tu chvíli, kdy je kód spuštěn. To může být někdy velmi nepříjemné.
Zranitelnost - Protože se program šíří v podobě zdrojového kódu, každý do něj může zasahovat nebo krást jeho části.

Jazyky s virtuálním strojem

Jedná se o spojení obou výše uvedených přístupů.
Zdrojový kód je nejprve přeložen do tzv. mezikódu. Jedná se v podstatě o strojový (binární) kód, který má ale o poznání jednodušší instrukční sadu a přímo podporuje objektové programování. Tento mezikód je potom rychle interpretovatelný tzv. virtuálním strojem (tedy interpretem, v případě .NET je to tzv. CLR - Common Language Runtime). Výsledkem je strojový kód pro náš procesor.
Do této kategorie patří například C# a Java.

Tato technologie odstraňuje nevýhody interpreta i kompileru a umožňuje využívat mnohé z jejich výhod:

Odhalení chyb ve zdrojovém kódu - Díky kompilaci do mezikódu jednoduše odhalíme chyby ve zdrojovém kódu.
Stabilita - Díky tomu, že interpret kódu rozumí, zastaví nás před vykonáním nebezpečné operace a na chybu upozorní.
Jednoduchý vývoj - Správu paměti za nás provádí garbage collector apod.
Rychlost - Rychlost se u virtuálního stroje pohybuje mezi interpretem a kompilerem.
Málo zranitelný kód - Aplikace se šíří jako zdrojový kód v mezikódu, není tedy úplně jednoduše lidsky čitelný.
Přenositelnost - Program běží na každém počítači, na kterém se nachází virtuální stroj. To ale není vše, my jsme dokonce nezávislí i na samotném jazyce. Na jednom projektu může dělat více lidí, jeden v C#.Net, druhý ve Visual Basic.Net a třetí v C++.Net. Zdrojové kódy se poté vždy přeloží do mezikódu.

Visual Basic

Visual Basic vychází z programovacího jazyka BASIC, který byl určen pro výuku programování. BASIC byl navržen v roce 1963 a v 80.letech našel využití především na domácích mikropočítačích. Postupně vznikaly další dialekty BASICu, mezi nimiž byl nejoblíbenější QBasic od firmy Microsoft. Microsoft vydal celou řadu verzí jazyka Microsoft BASIC a jednou z nich je Visual Basic (VB).
Visual Basic sebou přinesl objektově orientované programování a jeho první verze se objevila v roce 1991. Visual Basic 6.0 vydaný v roce 1998 byl již poslední verzí této generace.
V roce 2001 Microsoft vydal Visual Basic.NET, který se stal novou generací Visual Basicu.

Visual Basic for Applications

Skriptovavací jazyk Visual Basic for Applications (zkratkou VBA) je variantou odvozenou z Visual Basicu 6.0. Slouží zejména pro uživatelské doplnění funkcionality programů, zejména Microsoft Office, jehož je součástí.
VBA je jazykem interpretovaným. Pomocí tohoto jazyka je možno v prostředí MS Office vytvářet krátké programy, které zautomatizují často prováděné operace, programy pro zpracovávání dat, vytvářet uživatelské rozhraní, či vytvářet vlastní aplikace.