Portál AbcLinuxu, 16. května 2024 02:29
Scheme je oblíbený výukový programovací jazyk. Učí se v něm programovat například studenti Bostonské univerzity, MIT, Rice University, ... a také Univerzity Palackého v Olomouci. Pojďte se jej naučit i vy.
V polovině sedmdesátých let minulého století měli pánové G. Sussman a G. Steele z MIT potřebu osahat si v praxi Hewittovu teorii aktorů. Žádný z tehdejších programovacích jazyků jim nebyl dost dobrý, a proto se rozhodli pro vytvoření jazyka vlastního. Implementovali jej v LISPu a pojmenovali Schemer, tedy podle vzoru pro pojmenovávání jazyků pro umělou inteligenci (Planner, Conniver). Jelikož ale jimi používaný operační systém ITS omezoval délku názvu adresáře na pouhých šest znaků, ustálil se název Scheme. Veřejnosti byl Scheme představeno prostřednictvím publikací Scheme: an interpreter for extended lambda calculus, LAMBDA: The Ultimate Imperative a LAMBDA: The Ultimate Declarative. Nově vzniklý jazyk neměl být cílem, nýbrž prostředkem, a tudíž byla jeho specifikace velmi přímočará. Standard jazyka byl definován v roce 1978 v dokumentu Revidovaná zpráva o Scheme, dialektu LISPu a jednou za čas je aktualizován prostřednictvím padesátistránkového textu Revize revize reportu Scheme, aneb neobvyklý LISP, kde se s každou aktualizací zvyšuje počet slov "revize". Současným standardem je R5RS a blíží se R6RS.
Scheme je, jak již bylo zmíněno, dialektem jazyka LISP. To jej předurčuje k funkcionální orientaci a také k přeplněnosti závorkami; však se říká, že LISP je zkratkou z "Lost In Stupid Parentheses" ("Ztracen v pitomých závorkách").
Základem všeho jsou seznamy a ty se dále vyhodnocují..., ale o tom až v příštím díle tohoto seriálu.
Scheme je jazyk silně a dynamicky typovaný. To znamená, že překladač nepovolí přiřazení nesprávné hodnoty (je vyžadováno explicitní přetypování) a také není nutno deklarovat proměnné.
Scheme je velmi jednoduchý jazyk (vždyť standard má pouhých 50 stran, viz výše). V praxi se téměř nepoužívá (čestnými výjímkami jsou skriptovací jazyk v GIMPu a Scheme Shell -- SCSH), což je skvělé pro výuku, neboť není nutné zabývat se technickými detaily důležitými právě pro praxi (jako je tomu třeba u C++). Díky akademickému původu se ve Scheme snadno navrhují algoritmy. Pro úplnost dodávám seznam škol, na nichž se Scheme vyučuje.
Existuje celá řada překladačů Scheme, většinou se jedná o interaktivní interprety. Liší se od sebe až ve složitějších záležitostech, proto je v podstatě jedno, který si vyberete. Doporučuji vývojové prostředí DrScheme, které využívá překladač PLT Scheme.
Řekněme, že mám nainstalované PLT Scheme a chci jej spustit:
mzscheme Welcome to MzScheme version 360, Copyright (c) 2004-2006 PLT Scheme Inc. >
Na posledním řádku vidíme výzvu, do té můžeme něco napsat:
> 1 + 1 1 > #<primitive:+> > 1 >
Čekali bychom, že se vyhodnotí zadaný výraz, ale stalo se cosi podivného. Může za to fakt, že Scheme má syntaxi založenou na LISPu, a tudíž by daný výraz měl vypadat poněkud jinak. O tom ovšem až příště.
Interpret ukončíte stisknutím znaku konce souboru, tedy Ctrl + D.
V příštím článku o Scheme si ukážeme, jak se vyhodnocují výrazy, a seznámíme se s proměnnými a procedurami.
Pokračování by měla být celkem dvě. V druhém díle budou zahrnuty podmínky a také rekurze, ve třetím pak tečkové páry. Pokud máte zájem o hlubší studium jazyka Scheme, přečtěte si standard R5RS nebo povedená skripta Univerzity Palackého.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.