1 PROGRAMOVÁNÍ Úvod

Transkript

1 PROGRAMOVÁNÍ Úvod
PROGRAMOVÁNÍ
Úvod
1. Poněkud zastaralejší programovací jazyk. Byl vyvinut v roce 1964 v Darthmouth College v
USA. Název vznikl zkratkou Beginners All-purpose Symbolic Instruction Code, což
víceméně znamená: Pro začátečníky určený víceúčelový programovací prostředek. Basic
nemá pevně danou normu - existuje mnoho "typů" (Basic-G, QBasic, Visual Basic, PDS,...).
Další vlastností Basicu je jeho vhodnost pro krátké prográmky, ovšem píšete-li něco většího,
zaručeně se ve zdrojáku ztratíte. Je to proto, že nemá moc velké formální požadavky nemusíte vůbec nic definovat (což silně ubírá na přehlednosti).
2. Budu se tu zabývat QBasicem. Pracuje v Dosu a i dnes se ještě někdy vyskytuje. Pokud
chcete psát pro Windows, zajímejte se o Visual Basic, ale já osobně bych raději psal pro
Windows v Delphi (možná se o tom zmíním v části o Pascalu).
BASIC - Co běželo na osmibitech
Mám na mysli Basicy na počítačích ZX Spectrum, IQ 151, ... Každý tento počítač měl trochu
odlišnou verzi Basicu (liší se v detailech jako velikost písmene pro proměnné, několika příkazy, ...). Z
dnešního pohledu to jsou celkem hrozné jazyky:
•
•
•
•
•
na začátku každého řádku je číslice (větší než předchozí a menší než následující většinou jdou po desítkách). Tato číslice slouží jako návěstí pro GOTO.
je zde omezený počet proměnných (286 číselných a 286 textových). Proměnné jsou ve
tvaru: velké nediakritické písmeno nebo velké nediakritické písmeno s jednou číslicí
(proto ten přesný počet proměnných - písmen je 26 a číslic 10 + jedno písmeno bez
číslice, to je 11 * 26 = 286). K textové proměnné se ještě přidá $.
vůbec se nerozlišuje mezi jednotlivými číselnými datovými typy. V podstatě jsou všechny
číselné proměnné typu real, i když progamátorovi stačí i integer.
chybí cykly WHILE a REPEAT, často neexistuje úplný podmíněný příkaz (tzn., že u IF ..
THEN často není ELSE). Zato se zde úplně běžně pracuje s GOTO (které se ve všech
normálních jazycích používá jen vyjímečně - pokud tam je), za THEN se GOTO ani
nemusí psát!!!
neexistuje složený příkaz (k použítí u FOR nebo IF), jeho nedostatek se nahrazuje
několika příkazy GOTO. U FOR se konec zdrojového textu k opakování označuje
slovem NEXT.
Z tohoto všeho vyplývá, že zdrojový text v těchto Basicích je totálně nepřehledný. Už trochu
složitější program je vlastně síť příkazů GOTO, kde si ani nemůžeme nějak rozumně pojmenovat návěstí
(stejně tak s proměnnými). Vypadalo to asi takhle:
10 CLS
20 PRINT "Napis libovolne kladne cislo";
30 INPUT A1
40 IF A1<0 THEN 80
50 IF A1=0 THEN 100
60 PRINT "Vyborne, je fakt kladne"
70 GOTO 120
80 PRINT "Je zaporne, mas napsat kladne!!!"
90 GOTO 20
100 PRINT "Je to nula, mas napsat kladne cislo!!!"
110 GOTO 20
120 END
1
Tento příklad je trochu přehnaný, šel by napsat jednodušeji, ale mě nic lepšího nenapadlo. Myslím,
že je docela pochopitelný i pro ty, kteří Basic neovládají. Samozřejmě u verzí s ELSE nebo se složeným
príkazem by byl podstatně jednodušší.
QBasic
Je to jedna z nejoblíbenějších verzí Basicu. Jako jedna z mála je vybavena slušnými prostředky pro
struturované programování (moderní způsob programování - využití podmínek, procedur, funkcí,
cyklů,...). Nemá už většinu výše popsaných problémů "osmibitových" Basiců:
•
•
•
•
•
•
•
•
•
nemusejí se číslovat řádky (tudíž systém návěstí je obdobný Pascalu).
proměnné si člověk může pojmenovat skoro jak chce (opět s podobnými pravidly jako v
Pascalu).
typ proměné se zde určuje podle posledního znaku. Například znak "%" značí
proměnnou typu integer, znak "$" značí string, ... U typu single (obdoba single - real v
Pascalu) se poslední znak nemusí používat.
cyklů je až moc (2x víc než v Pascalu), všechny jsou řešeny podobně jako pascalovské
repeat-until s pevně určeným začátkem a koncem.
podobně zbytečně vysoké je i množství logických operátorů (nejen běžné AND, OR,
XOR, NOT, ale i EQV - ekvivalence a IMP - implikace).
složený příkaz se řeší psaním příkazů na jeden řádek s dvojtečkou mezi nimi, v podstatě
ale není vůbec potřeba (u cyklů ani u podmínky IF jej nevyužijete).
neexistuje většina složených datových typů (o záznamech (record) nebo dokonce
objektech si můžete nechat zdát) - najdete zde jen pole (array). Stejně tak zde nejsou
ukazatele.
příkaz IF se zápisuje stylem IF - THEN - ELSE - ELSEIF - END IF, dá se ovšem
zredukovat jen na prosté IF - THEN.
QBasic podporuje i procedury a funkce, proměnné se jim mohou předávat hodnotou (u
funkce - FUNCTION) i odkazem (u procedury - SUB). Kromě toho zde jsou ještě
podprogramy - v podstatě blok kódu mimo hlavní program.
Editor QBasicu má dost nepříjemnou vlastnost - je velmi aktivní, sám se snaží předělávat autoru
program již během psaní, při opuštění řádky kurzorem se pokusí tento řádek zkompilovat, a pokud jej
"nepřečte", pošle vás zpět (ale dá se to vypnout).
QBasicu jsou nejbližší verze QuickBasic a PDS. QBasic je pouze interpret - tzn., že chcete-li si
spustit svůj program, musíte jej vždy spustit v QBasicu, program je kompilován přímo za běhu.
Doporučuji QuickBasic - je tu možnost výroby "samospustitelných" programů (lze je spustit jako
obyčejný exe soubor, ale musejí mít u sebe BRun45.exe, který je za běhu kompiluje). S PDS nemám
žádné zkušenosti.
QBasic si můžete stáhnout ze sekce ke stážení, ale pokud vím, tento program je standardní součástí
většiny verzí operačního systému MS-DOS.
Vyhrabal jsem to ještě z dob, kdy jsem se Qb aktivně zabýval.
Ukázka syntaxe
SCREEN 8
REM nastavení grafického režimu 640x200
CLS
PRINT
PRINT " M E T R O N O M "
SLEEP 3
k$ = INKEY$
DO
PRINT "zadej pomlku (1-32)"
PRINT "1=cela "
PRINT "2=pulova "
INPUT "...
", dp%
LOOP WHILE dp% > 32
2
DO
GOSUB zaklad
PLAY "O2"
READ x
DATA 320,260,320,380
IF x = 260 OR x = 380 THEN y = 60
IF x = 320 THEN y = 52
IF x = 380 THEN RESTORE
IF x = 260 THEN PLAY "C32"
IF x = 380 THEN PLAY "D32"
LINE (320, 120)-(x, y), 14
CIRCLE (x, y), 10, 14
IF dp% < 1 THEN dp% = 1
IF dp% > 32 THEN dp% = 32
PLAY "P" + STR$(dp% * 2)
k$ = INKEY$
IF k$ = "q" THEN dp% = dp% - 1
IF k$ = "w" THEN dp% = dp% + 1
IF k$ = "k" THEN GOTO blokk
CLS
LOCATE 21, 2
PRINT "pomlka - "; dp%
LOCATE 22, 2
PRINT "q - zpomaleni
w - zrychleni
LOOP UNTIL k$ = "k"
k - konec"
blokk:
END
zaklad:
LINE (250, 150)-(390, 150)
LINE (250, 150)-(300, 50)
LINE (390, 150)-(340, 50)
LINE (300, 50)-(340, 50)
LINE (320, 50)-(320, 120)
LINE (265, 120)-(375, 120)
REM konec zakladu ,stred je (320,120)
RETURN
Úkolem tohoto programu je vytvořit metronom, graficky znázorněný i pravidelně pípající. Jak vidíte,
zápis je poněkud nepřehledný, ačkoli se tu objevuje podprogram (zaklad...RETURN s odkazem GOSUB).
V ukázce jsou pěkně vidět cykly DO-LOOP UNTIL a DO-LOOP WHILE. V programu je návěstí blokk.
Proměnné jsou typu string (k$) a single (x, y,...), určitá vzláštnost jsou integery (dp%), které se obyčejně
v QBasicu nepoužívají. Na začátku není potřeba vypisovat žádné formality (jako třeba výčet
proměnných), zde začíná program nastavením modu obrazovky a vypsáním názvu programu (REM jsou
poznámky).
ASSEMBLER
Asm obecně
Assembler (oficiálně česky Jazyk symbolických adres) vznikl někdy na konci čtyřicátých let
minulého století. Patří mezi nižší programovací jazyky (strojově orientované). To znamená, že "slova"
jazyka víceméně odpovídají instrukcím strojového kódu. Jejich podoba je však samozřejmě
zapamatovatelnější (alespoň pro ty, kteří umějí anglicky). Kompilátor má tedy podstatně jednodušší práci,
než u vyšších jazyků (to jsou prakticky všechny ostatní). Výhodou je vysoká rychlost kompilace, a někdy
i programu.
Ve své době to byl docela pokrok, programátor si nemusel pamatovat (nebo zdlouhavě vyhledávat v
tabulkách) spousty nezapamatovatelných znaků, ale stačilo mu napsat např. pro skok (jump) instrukci
3
JMP (+ parametry), pro nastavení (přesun) dat (move) MOV (+ parametry), ... Až o hodně později jej
nahradily vyšší programovací jazyky a asm se dnes používa jen jako jejich doplňek.
Podle mého názoru se v dnešní době "čistým" Assemblerem zabývají jen šílenci a špičkoví
odborníci. Takhle například vypadá výpis textu
TENHLE PROGRAM
UMI NAPSAT I $
v čistém Assembleru (pro Turbo Assembler - TASM; tento soubor bude com, ne exe) :
A SEGMENT
ASSUME CS:A,DS:A
ORG 100H
START: MOV AH,9
MOV DX,OFFSET TEXT
INT 21H
MOV DL,'$'
MOV AH,2
INT 21H
INT 20H
TEXT DB 'TENHLE PROGRAM',10,13,'UMI NAPSAT I $'
A ENDS
END START
Pro srovnání v Pascalu by zdroják vypadal asi takto:
begin
writeln('TENHLE PROGRAM');
writeln('UMI NAPSAT I $');
end.
V assembleru začíná vlastní program tím START (a končí END START). To před tím je označení
segmentu a podobné inicializační "keci". MOV slouží k přiřazení hodnoty proměnné nebo registru (tedy
totéž jako : = /dvojtečka + rovná se/ v Pascalu; registr je něco jako paměťový obvod v procesoru, je tedy
podstatně rychlejší než RAM). INT 21H značí přerušení Dosu, přičemž vykoná službu jejíž číslo je v
registru AH a ostatní instrukce potřebné k této funkci jsou v dalších registrech. Ten znak pro dolar ($) v
...UMI NAPSAT I $ značí ukončení řetězce, nevypíše se tedy (pokud jej vynecháte, program bude
vypisovat text z paměti tak dlouho, dokud náhodou na tento znak nenarazí). K vypsání znaku $ slouží
nastavení MOV DL,'$' a MOV AH,2. INT 20H je přerušení - ukončení programu. Myslím, že jako
ukázka pro nezasvěcené to docela stačí.
Pro programátory má assembler tedy smysl pouze jako doplněk nějakého vyššího jazyka (direktiva
ASM v Pascalu; podobně v C), např. při psaní operačního systému se bez assembleru neobejdete.
Vkládaný Assembler v jazyce Pascal
Pokud umíte alespoň základy Pascalu, může se vám hodit direktiva ASM. V ní vkládáte do
zdrojového kódu Pascalu části psané v Assembleru. Nemůžete zde však využívat všechny možnosti Asm.
Týká se to zejména 32bitových registrů a speciálních příkazů pro "vyšší" procesory (využívá jen příkazy
pro 8086, jde nastavit i pro 80286). Můžete však nejen urychlit program (což je pro normálního
programátora dost velký problém, a na většině počítačů to stejně nepoznáte), ale hlavně ovládat myš,
joystick, a mít přístup na jednotlivé porty. Podrobně jsou jednotlivé funkce popsány v systémových
manuálech (porty, funkce dosu, rom-biosu,...). Jeden free manuál (AtHelp) najdete v sekci Ke stažení.
Další sehnatelné manuály jsou např.: SysMan, TechHelp, ...
4
Ovládání myši
Jedna z věcí, kterou v praxi určitě využijete:
var
x,y:word; {může být i Integer}
begin
...
...
{zobrazení/vypnutí kurzoru:}
asm
mov ax,01h
int 33h
end;
...
...
{získání aktuální polohy myši -souřadnice x,y}
asm
mov ax,03h
int 33h
mov x,cx
mov y,dx
end;
...
...
{získání polohy posledního kliku tlačítka}
asm
mov ax,05h
mov bx,tl
int 33h
mov x,cx
mov y,dx
end;
...
...
end.
Místo tl příjde číslo tlačítka myši. Bude-li místo tl číslo 0, značí to levé tlačítko myši, jednička
odpovídá pravému a dvojka prostřednímu (existuje-li).
Ovládání NumLocku
Pomocí vkládaného assembleru jde také ovládat nastavení Num Locku, Caps Locku a Scroll Locku.
Je to překvapivě jednoduché:
var
x:byte;
begin
...
...
asm
mov al,0edh
out 60h,al
mov al,x
out 60h,al
end;
...
...
Proměnná x je osmibitová proměnná na jejímž základě se rozsvítí diody. Zjednodušeně: je-li x=1
zapne se Scroll Lock, je-li 2 zapne se Num Lock a je-li 4 zapne se Caps Lock. Nulou se vypnou všechny.
Chcete-li zapnout jejich kombinaci, jednoduše hodnoty sečtete - např. je li x=7, zapnou se všechny.
5
Nejsem si jist, zda to poběží na Win XP nebo Win 2000.
Je stisknut shift, ctrl, ... ?
Zjistit, zda jsou stisknuty přeřaďovače nebo nastaveny trvalé přeřaďovače není až tak složité:
var
p,i,z:byte;
a:array[1..8] of byte;
s:string;
begin
...
{načtení bytu p:}
asm
mov ah,02h
int 16h
mov p,al
end;
{zpracovani na array a:}
i:=0;
repeat
i:=i+1;
z:=p mod 2;
p:=p div 2;
a[i]:=z;
until p=0;
for i:=1 to 8 do
begin
s:=' ';
if a[i]=1 then
case i of
1:s:='pravý Shift';
2:s:='levý Shift';
3:s:='Ctrl';
4:s:='Alt';
5:s:='ScrollLock';
6:s:='NumLock';
7:s:='CapsLock';
8:s:='Insert';
end;
writeln(s);
end;
...
end.
Veškeré stavy přeřaďovačů obsahuje už byte p. Ten se potom ve druhém odstavci zpracuje na array
a - jednotlivé bity se převedou na prvky pole (není to potřeba, ale lépe se to čte; v podstatě je to plýtvání
místem - jednotlivé prvky pole (byte) obsahují pouze hodnoty 0 a 1). Poslední odstavec pouze ukazuje
význam jednotlivých bitů.
6
PASCAL
Úvod do Pascalu
Pascal je asi nejlepší výukový jazyk pro Dos. Pro Windows existuje Delphi, kt. z něj syntakticky
vychází. Pascal byl speciálně vyvinut jako výukový jazyk, a proto není zrovna nejvhodnější pro hodně
velké projekty. Vymyslel jej v roce 1970 Švícar N. Wirth. Setkal jsem se s dvěma verzemi - Borland
Pascalem a Turbo Pascalem. Programy jsem psal v obou, ale rozdíly mezi nimi jsem nenašel (jenom
vzájemně nepasovaly soubory jednotek .tpu).
Pascal má obrovské možnosti v tzv. strukturovaných datových typech (složené datové typy, které
spojují několik jednoduchých). Má velké formální požadavky - programátor musí definovat téměř úplně
vše a to v přesně daném pořadí.
Co potřebujete pro začátek
Rozhodně si stáhněte BP ze sekce Ke stažení (je to balík všech možných Pascalů, ale Borland je
rozhodně nejpoužitelnější). Má českou nápovědu (která se mi zobrazuje neuvěřitelně čajově). Pokud si
Pascal chcete jen vyskoušet stačí vám si stáhnout TP ze stejné sekce. Jinak ho ale moc nedoporučuji, je
pěkně vykuchaný (nemá např. vůbec unitu Graph).
Pokud nemáte žádnou učebnici, odskočte si ze sekce Odkazy na Algoritmy a programování.
Doporučuji stáhnout celé stránky.
Několik tipů
Ukazatel a dynamické datové struktury
Je to dost velké, a tak jsem to dal na vlastní stránku.
Problémy klávesnice
Znak
Zkratka
'
Altgr + 3 9
(apostrof)
^
Altgr + 9 4
(/"š")
<
Altgr + 6 0 *
>
Altgr + "y" *
{}
Altgr + "b","n"
[]
Altgr + "f","g"
Pokud skusíte programovat v Pascalu na české klávesnici, možná zjistíte, že některé znaky neumíte
napsat, protože je na klávesnici prostě nenajdete. Obvykle tam jsou, ale mají nějakou šílenou zkratku. Ta
většinou je (v Dosu): pravý Alt (Altgr, u starších počítačů údajně Ctrl + Alt) + něco. To něco je buď jedna
klávesa na alfanumerické nebo několik čísel na numerické části klávesnice. Předpokládám, že #, @ nebo \
napsat umíte (pro jistotu Alt + x, v, q), a tak vypisuji ty méně používané (pro Dos), které využijete při
programování v Pascalu a vlastně při psaní v jakémkoli dosáckém textovém editoru.
Dosovský ovladač klávesnice nebere zkratky Alt+ "," (čárka) a Alt+ "." (tečka) pro znaky označené
hvězdičkou * jako Windows, ale mnohé klávesnice mají mezi levým Shiftem a Y ještě jednu klávesu,
která by s Altem měla vypsat "<", takže nemusíte vypisovat pokaždé tu šedesátku.
Pro Windows jsou ty skratky stejné - u číselných kombinací však používáme levý Alt.
7
Jak ovládat myš, ScrollLock, ...
Spousta věcí se dá udělat pouze pomocí vkládaného Assembleru. Jedná se hlavně o ovládání myši a
joysticku, o kontrolu přeřaďovacích kláves (ctrl, numlock, ...) a další. Několik takových věcí jsem popsal
v části o Assembleru.
Jak vymazat obsah složky
Pascal umožňuje rušit složku, jen pokud je prázdná. Pokud je ve složce velké množství souborů,
nebo pokud neznáte její přesný obsah, je nejjednodušší použít příkaz FindFirst:
uses
dos;
var
w:integer;
dirinfo:tsearchrec;
jm:string;
s:text;
begin
findfirst('*.*',faarchive,dirinfo);
repeat
{převedení jména souboru z array[0..12] of char na string:}
for w:=0 to 12 do jm:=jm+dirinfo.name[w];
assign(s,jm);
erase(s);
jm:='';
findnext(dirinfo);
until doserror<>0; {když je doserror 0, program našel soubor}
end.
Psaní vlastních jednotek (unit)
Pokud pracujete ve více programech se stále stejnými procedurami a funkcemi, můžete v Pascalu
využít možnosti psaní vlastních jednotek. Ty se pak zadávají stejně jako např. jednotka Dos, nebo Crt.
Psaní jednotek je věc úplně primitivní. V části interface se vypisují názvy (a vztupní + výztupní údaje)
procedur, funkcí, konstant (, ...), které tvoří obsah knihovny, ve zdrojáku exáče je potom můžeme
používat (pokud máme v uses tuto jednotku). Potom je část implementation, ve které jsou jednotlivé
výše uvedené fce a procedury vysvětleny (je tam jejich obsah). Mohou tu být i procedury (a fce), které
nejsou v interface (a tudíž nemohou být užity ve zdrojáku exáče), jichž využívají ostatní procedury (a
samozřejmě fce). V poslední části jsou inicializační věci jednotky, dávají se mezi begin a end. (s tečkou).
Tato část se dost často vynechává, dá se tam prostě jenom end. (s tečkou samozřejmě).
Tohle je třeba jednotka, kterou požívám k ovládání myši (trochu jsem ji zkrátil).
unit myscz;
interface
{ukazuje obsah knihovny}
type tlmysi=(leve,prave,prostredni);
{datový typ použitý v jednotce}
function initmys:word;
{inicializuj myš}
procedure nastkurzor(zk:boolean);
{true - zapni / false - vypni kurzor}
procedure kdejetlac(tl:tlmysi;var xs:integer;
var ys:integer;var poc:integer);
{kde se naposledy stisklo požadované tlačítko (xs a ys)
a kolikrát se stisklo od posledního měření (poc)}
implementation
{obsahuje výpis knihovny}
8
function initmys:word; {inicializuj myš}
var
tl:word;
begin
asm
mov ax,01
int 33h
mov tl,bx
end;
initmys:=tl;
end;
procedure nastkurzor(zk:boolean);
begin
if zk=true then
asm
mov ax,01
int 33h
end
else
asm
mov ax,02
int 33h
end;
end;
procedure kdejetlac(tl:tlmysi;var xs:integer;
var ys:integer;var poc:integer);{05}
var
ctl:word; {číslo tlačítka}
x,y,p:word;
begin
case tl of
leve: ctl:=0;
prave: ctl:=1;
prostredni: ctl:=2;
end;
asm
mov ax,05
mov bx,ctl
int 33h
mov x,cx
mov y,dx
mov p,bx
end;
poc:=p;
xs:=x;
ys:=y;
end;
end.
Podle tohoto schématu si Pascal sám nakompiluje jednotku TPU.
V podstatě stejnou strukturu jako zdroják pascalovské unity má i program v Delphi (jazyk pro
Windows odvozený z Pascalu). Zde je většina procedur (nebo funkcí) reakcí na nějakou událost (kliknutí
myší na tlačítko, ...).
Dělení programovacích jazyků
Programovací jazyky se dají rozdělit podle mnoha kritérií. Nejčastější způsoby jsou tyto:
9
Vyšší a nižší
Nižší programovací jazyky jsou jazyky primitivní, jejichž instrukce (víceméně přesně) odpovídají
příkazům procesoru. To znamená, že procesor bude vykonávat ty instrukce, které programátor napíše.
Jsou závislé na svém procesoru a nepřenositelné na jiný (nepříbuzný) procesor (program z 386 na Pentiu
pojede, ale na Atari (procesor Motorola) ne).
V praxi to vypadá tak, že programátor musí vypisovat "každou pitomost", i jednoduchý program má
neúměrně složitý zdrojový kód. Výhodou je, že programátor má takto přístup i k funkcím počítače, které
by měl ve vyšším programovacím jazyce nedosažitelné.
Patří sem jazyk symbolických adres (Assembler), strojový kód, vzláštním typem nižšího jazyka je
tzv. autokód, který spojuje prvky nižších a vyšších jazyků.
Vyšší (problémově orientované) programovací jazyky jsou podstatně srozumitelnější, struktura
jejich zdrojáků je logická, nejsou závislé na strojových principech počítače. Do strojového kódu se
převádějí kompilátorem. V praxi je vyšší programovací jazyk vše, co není Assembler, to znamená:
Pascal, C, Basic, Prolog, Lisp, Algol, Fortran, ...
Procedurální a neprocedurální
Procedurální jazyky jsou téměř všechny jazyky, které se běžně používají. K řešení úlohy se používá
algoritmu (postup, jak se má daná úloha vyřešit).
U neprocedurálních jazyků se pouze logickými výroky popisuje daný problém a cíl k řešení úlohy.
Např. Prolog, Lisp.
Interpretované a kompilované
Interpretované jazyky jsou překládány až za běhu programu. Jsou pomalejší, ale nemají tak velké
formální požadavky (není potřeba inicializovat proměnnou, její datový typ se může měnit, ...). Např.
většina verzí Basicu, všechny skriptovací jazyky.
Kompilované jazyky jsou celé přeloženy a až potom mohou být spušněny. Jsou rychlejší, mají vyšší
nároky na formální správnost kódu. Patří sem většina klasických programovacích jazyků.
Teoreticky může mít jeden programovací jazyk verzi interpretovanou i kompilovanou.
Některé další programovací jazyky
Ada
Jazyk určený k výrobě bezpečných a spolehlivých programů. Vyznačuje se velmi silnou typovou
kontrolou. Velmi univerzální jazyk, píše se v něm i řídící software pro různé stroje včetně letadel,
raketoplánů a dalších. Syntakticky vychází z Pascalu.
Algol
Algorithmic Language = algoritmický jazyk. Jeden z nejstarších programovacích jazyků
(byl vytvořen na přelomu 50. a 60. let). Byl zaměřen na řešení zejména vědeckých a technických
úloh. Ačkoliv obsahoval mnoho moderních prvků (které se používají dodnes), příliš se nerozšířil.
Je základem všech moderních jazyků. Existuje spousta verzí Algolu, např. Algol 58, Algol 60,
Algol 68.
ASP
Active Server Pages. Serverový skriptovací jazyk od Microsoftu. Má zhruba stejné možnosti jako
PHP, ale poněkud složitější syntaxi. Existuje jen na serverech s operačním systémem windows.
10
Assembler
Assembler = sestavitel (programu). Mám jej na vlastní stránce.
Basic
Beginners All-purpose Symbolic Instruction Code = Pro začátečníky určený víceúčelový
programovací prostředek. Opět je na vlastní stránce.
C
Jazyk relativně nízké úrovně, původně zaměřený na programování operačních systémů. Má velmi
úsporné vyjadřování, a proto je velmi nepřehledný. Existuje velké množství rozšíření jazyka, nejznámější
je objektově orientované C++.
Cobol
Common Business Oriented Language = obecně obchodně orientovaný jazyk. Jeden z nestarších
vyšších programovacích jazyků. Vznikl z potřeby programovacího jazyka pro obchodní a ekonomické
úlohy, pro úlohy s hromadným zpracováním dat. Opět existuje mnoho verzí tohoto jazyka, např. Cobol60, Cobol-61, Cobol-65, Cobol-69,...
Delphi
Programovací jazyk pro Windows vycházející synatkticky z Pascalu. Jeho protředí je
vizuální, to znamená, že programátor určuje vzhled programu "kreslením" myší, stejným
způsobem i vytváří některé části kódu. Samotný kód se celý skládá z procedur - reakcí na
události (klik na prvek, ...).
Fortran
Formula Translation = překlad vzorců. Vůbec první vyšší programovací jazyk. Vznikl v padesátých
letech 20. století (první oficiální verze 1957), byl vhodný spíše k matematickým výpočtům. Znamenal
ohromný pokrok ve vývoji programování, v podstatě všechny vyšší jazyky z něj (alespoň nepřímo)
vycházejí. Dnes se již nepoužívá.
HTML
Není programovací jazyk, ale jazyk pro práci s hypertextem.
HyperText Markup Language = značkovací jazyk pro tvorbu hypertextu (= textu s aktivními
odkazy). Základní nástroj pro vytváření internetových stránek. Zobrazený text je doplněn značkami(tagy;
jsou v špičatých závorkách), popisujícími jeho vlastnosti.
Java
Objektově orientovaný programovací jazyk nezávislý na platformě. Vyvinula jej firma Sun
Microsystems. Používá se téměř všude, jako doplnění internetových stránek klientským skriptem (java
applet), serverový skript (JSP), stejně jako na hry do mobilů i obyčejné programy pro jakýkoli operační
systém. Vychází z jazyka C++ (jako mnoho jiných jazyků), který poněkud zjednodušuje. Jako
konkurenční jazyk od Microsoftu vznikl C#.
JavaScript
Nejčastěji používaný internetový klientský skriptovací jazyk. Proběhne až v internetovém prohlížeči
(na rozdíl např. od PHP, které proběhne už na serveru). Z bezpečnostních důvodů může ovlivňovat jen
11
internetovou stránku, nikoli uživatelský počítač. Neco mám o něm vzlášť. Podobně je na tom i méně
používaný VBScript.
Lisp
List processing. Nejstarší neprocedurální jazyk. Veškeré problémy řeší pomocí symbolů a jejich
seznamů. Používá se v programování umělé inteligence. Má velké množství dialektů.
Modula 2
Vychází z Pascalu, používal se i ke tvorbě hodně velkých projektů, podporuje modulární
programování.
MySQL
Zjednodušená a free verze SQL - Structured Query Language. Jazyk pro práci s databází. De facto
jediná jeho práce spočívá v tom, že vytváří tabulky, ukládá do nich data a vyhledává v nich údaje podle
pokynů uživatele. V praxi jej využívají hlavně jiné jazyky (PHP, ...) za použití několika spolupracujících
tabulek.
Pascal
Mám jej na vlastní stránce.
Perl
Practical Extraction Report Language. Téměř univerzální interpretovaný jazyk. Dá se v něm napsat
prakticky cokoliv, ale v praxi se používá zejména k psaní CGI skriptů (internetová technologie, serverový
skript založený na výstupu .exe souboru) a v těch případech, kdy je potřeba složitě zpracovávat text. Je
dosti nepřehledný.
PHP
Personal Home Page Tools (zkratka se vyvíjela - např.:Personal Home Page Construction Kit, dnes:
PHP:Hypertext Preprocesor, a to první P je z historických důvodů.). Internetový skriptovací jazyk
(serverový) používaný k tvorbě webových stránek. Instrukce se vkládájí do HTML kódu, syntaxe je
podobná jazyku C. Práce programu probíhá v serveru, na uživatelský počítač se dostávají jen výsledky.
Podobně jsou na tom i zastaralé SSI a výlučně windowsácké ASP. PHP je volně šiřitelné.
Prolog
Programming in Logic = logické programování. Je to neprocedurální jazyk (na rozdíl od většiny
ostatních jazyků), popisuje programátorský problém pomocí logických výroků. Používá se k řešení
problémů, které se dají popsat ve formě objektů a vztahů mezi nimi, k tvorbě umělé inteligence.
Python
Přehlednější, avšak ne tak oblíbená obdoba Perlu.
Snobol
String Oriented Symbolic Language - Jazyk určený pro práci s řetězci. První jazyk zaměrený
zejména na zpracování textových řetězců. V dnešní době byl nahrazen zejména Perlem a dalšími jazyky.
12
SSI
Server Side Includes - vsuvky na straně serveru. Jednoduchý zastaralý serverový skriptovací jazyk.
Nemá zdaleka takové možnosti jako PHP nebo ASP.
Tcl
Tool Command Language. Univerzální skriptovací jazyk. Je oblíben zejména díky knihovně Tk,
která umožňuje psát programy s grafickým rozhraním.
Visual Basic
Programovací jazyk pro Windows od Microsoftu. Má vizuální prostředí. S ostatními Basici nemá
příliš společného.
VBScript
Visual Basic Script. Internetový skriptovací jazyk, běžící u klienta, obdoba JavaScriptu. Syntakticky
vychází z Visual Basicu. Jeho největší nevýhoda (oproti JavaScriptu) je, že jej podporuje jen IE. V
podstatě se jedná o nepovedený pokus Microsoftu konkurovat JavaScriptu.
XML
není programovací jazyk, ale jazyk pro práci s daty.
Zjednodušená verze jazyka SGML, který sloužil (dnes se už nepoužívá) ke tvorbě datových formátů
založených na stejném základě (vždy se jedná o text doplněný pomocnými znaky, určujícími kvalitu a
vlastnosti daného textu). Nejpožívanější z těchto formátů je HTML.
XML vznikl odstraněním nepotřebných prvků SGML a jeho modernizací. Skládá se z tagů (s
libovolným textem), které však nemají pevný význam, ten se musí definovat v dalším jazyku (např. DTD,
XML Schema, SOX nebo XDR) - čímž se vytvoří nový datový formát, pro zobrazení textu na internetu je
potřeba ještě definovat vzhled prvků (pomocí CSS nebo XSL FO). Například jazyk XHTML vznikl jako
předefinování HTML v XML. Další požívaný jazyk vytvořený v XML je RDF.
13

Podobné dokumenty

COBOL final - Trash wiki

COBOL final - Trash wiki V COBOLu lze obdobně jako v ostatních jazycích používat více datových typů. Nyní si ukážeme jejich deklaraci a použití. V COBOLu jsou tři kategorie dat: § proměnné § literály § konstanty → Proměnné...

Více

Uživatelská příručka

Uživatelská příručka A-B replay – při přehrávání první stisknutí označí začátek, další stisknutí označí konec úseku, který bude následně opakován. Stisk MODE režim opakování zruší. VOL – změna hlasitosti, 0 – nejnižší ...

Více

expbasic 74,7 KB

expbasic 74,7 KB BASIC (bejzyk) je zkratka z názvu "Beginners All purpose Symbolic Instruction Code", neboli "Všeobecný symbolický instrukční kód pro začátečníky". Vznikl počátkem šedesátých let a šířil se od roku ...

Více

Výsledky rekordů do roku 2010

Výsledky rekordů do roku 2010 KRALOVICKÝ PODPIS: 16,74 m (celý tábor) SLADKÝ KRALOVICKÝ HAD: 8,7 m (tým kuchařek)

Více

TeamSpeak 3 - instalace a nastavení

TeamSpeak 3 - instalace a nastavení si jejím použitím nezrušíte žádné nastavení. To, jestli pak vysíláte (nebo alespoň mačkáte správné tlačítko na vysílání) vám indikuje klávesnice – stisknutí tohoto tlč. je vždy indikováno v horní p...

Více

Podmínky spolupráce s eSerivce v rámci akceptaci platebních nástrojů

Podmínky spolupráce s eSerivce v rámci akceptaci platebních nástrojů eService zadá několik otázek týkajících se klienta a zároveň se spojí s bankou, která platební kartu vydala. Následně zprostředkovává instrukce, jak dále postupovat. 4.2 Osoba obsluhující transakce...

Více

Soubory

Soubory • druhý znak je M (move) nebo L (locate) a značí zda se bude nebo nebude používat buffer • move - data jsou kopírována z nebo do programátorem

Více