Představení jazyka C#
V následujících kapitolách se seznámíme se základní konstrukcí jazyka C#, základními pojmy a principy, které jsme již poznali v předchozích kapitolách týkající se algoritmizace. Tyto a další principy implementujeme pomocí tohoto programovacího jazyka.
1. Představení jazyka C#
C# (vyslovuj [siː šaːp] je velmi flexibilní a mocný moderní vysokoúrovňový objektově orientovaný programovací jazyk vyvinutý firmou Microsoft (využívá platformu .NET Framework), který je založen na jazycích C, C++ a Java (z jazyka C čerpá syntaxi). Jazyk C# lze využít k tvorbě formulářových aplikací ve Windows, databázových aplikací, aplikací pro mobilní zařízení, webových stránek atd.
U jazyka C# se zdrojový kód programu nepřeloží do strojového kódu počítače, ale do mezikódu – univerzálního pomocného jazyku označovaného „Common Intermediate Language“ – „CIL“ (má jednodušší instrukční sadu a podporuje objektové programování). Ten se pomocí dalšího interpreteru – u .NET Framework je to „Common Language Runtime“ – „CLR“ - převede do strojového kódu cílového počítače, ale zpravidla až v okamžiku, kdy jsou programem vyžadovány – JIT (zkratka anglického „Just In Time“).
Prostředí .NET Framework podporuje práci s tzv. metadaty, což jsou dodatečné informace ukládané do CIL v době překladu a umožňují získávat z přeloženého programu velmi podrobné informace o třídách, které obsahuje – mechanismus reflexe (anglicky „Reflection“). Pojem třída (anglicky „Class“) berme jako základní konstrukční prvek objektově orientovaného programování, který slouží jako předpis pro vznik objektu (tzv. instance třídy) reprezentujícího např. nějaký prvek reálného světa a tyto třídy jsou ve vzájemné hierarchii. Jazyk C# a prostředí .NET Framework umožňuje spolupracovat i s tzv. neřízeným kódem (anglicky „Unmanaged Code“) který neběží v rámci CLR jedná se např. o starší programy. [1]
Prostředí CLR zajišťuje běh programů přeložených z různých jazyků a díky tomu mohou různé části napsané v různých jazycích vzájemně spolupracovat. Stará se také o automatickou správu paměti (anglicky „Garbage Collector“), např. odstraňování nepotřebných objektů atd. a programátor je od této činnosti oproštěn.
Pro bezproblémový běh vyvinutých aplikací v C# je zapotřebí na cílovém počítači stejné verze .NET, jako je verze, ve které byla aplikace vyvíjena.
Překladač programovacího jazyka C# zároveň kontroluje syntaktickou správnost programu, tedy zda je program napsán podle jistých formálních pravidel, která zaručují, že mu počítač rozumí. Syntaktická správnost programu bohužel nezaručuje věcnou správnost programu, tj. nezaručuje, že program bude dělat to, co si přejeme. [3]
Doplňme ještě největší výhodu C#, kterou je kompletní sada knihoven (předpřipravené kódy), které v sobě mají implementovánu řadu struktur a komponent odladěných zejména pro Windows. Mezi další výhody, kterými jsou: stabilita provádění kódu, správa paměti, shodné datové typy, přenositelnost kódu mezi programovacími jazyky (C#, Visual Basic, C++), pomalejší start ale vyšší rychlost provádění operací než interpretovaný jazyk (menší než kompilovaný jazyk), malá možnost napadení kódu (špatná čitelnost zdrojového kódu v „CIL“) atd.