B (programovací jazyk)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

B je programovací jazyk odvozený od jazyka BCPL. Autory jsou Ken Thompson a Dennis Ritchie. Jazyk B je předchůdcem velmi populárního jazyka C.

Popis jazyka

Jazyk B byl vytvořen hlavně pro systémové programování. Programovalo se v něm jednodušeji než v Jazyce symbolických adres, ale kód byl skoro stejně efektivní. +more Ken Thompson odstranil některé prvky z BCPL, které mu připadaly zbytečné.

B má pouze jeden datový typ: slovo. Většina operátorů jako s ním pracují jako s celým číslem, ale některé ho interpretují jako adresu v paměti počítače. +more Jazyk B nepodporuje desetinná čísla. Komentáře začínají /* a končí */.

R-hodnoty a l-hodnoty

R-hodnota je konstantní hodnota, která nemůže stát na levé straně přiřazení. Je to například volání funkce nebo číselná konstanta. +more L-hodnota je hodnota, která se smí měnit, může tedy stát na levé i pravé straně přiřazení (může r-hodnotu kdykoli nahradit). Je to proměnná, nebo výsledek operátoru *. Operátoru * předáváme r-hodnotu, kterou interpretuje jako adresu v paměti a vrátí l-hodnotu: proměnnou na té adrese. Operátoru & naopak předáme l-hodnotu a on vrátí r-hodnotu: adresu té l-hodnoty.

Příkazy

Blok: { příkazy oddělené středníky }.

Podmínka: if(r-hodnota(podmínka)) příkaz/blok else příkaz/blok. Větev else je nepovinná.

Příkaz goto: goto r-hodnota(očekává se návěstí).

Příkaz switch: switch(r-hodnota) { case konstanta1: /*............*/ case konstanta2: /*............*/ default: /*............*/ }

Cyklus while: while(r-hodnota(podmínka)) příkaz/blok.

Příkaz break: break. Slouží k vyskočení z cyklu while.

Příkaz return: return r-hodnota(nepovinné). Ukončí funkci. Pokud se mu předá r-hodnota, bude to návratová hodnota té funkce.

R-hodnota ukončená středníkem je příkaz.

Pokud před středník nic nenapíšeme, je to prázdný příkaz. Nemá žádný efekt.

Deklarace proměnných

Definice funkce

Syntaxe: název(parametry) blok.

Příklad: min(a, b) /*Funkce vrátí menší číslo*/ { if(a

Znaky

Jsou uzavřeny v jednoduchých uvozovkách. V jedné proměnné lze uchovávat až 4 znaky.

Příklad: auto a; a='Ahoj';

Textové řetězce

Jsou uzavřeny v uvozovkách. Textový řetězec je základ vektoru znaků (v jednom prvku vektoru jsou 4). Jsou ukončeny znakem s escape sekvencí *e.

Escape sekvence:

ZnakVýznam
0null
ekonec souboru nebo řetězce
({
)
|- |*t |tabulátor |- |** |* |- |*' |' |- |*" |*" |- |*n |nový řádek |}

Vstup a výstup

Funkce getchar načte vrátí jeden načtený znak. Funkce putchar vypíše znak, který je jí předán a vrátí ho. +more Funkce getstr načte do řetězce, který je jí předán celý řádek a vrátí ho. Funkce putstr vypíše řetězec, který jí předán.

Funkce printf přebírá 1 až 11 parametrů. První parametr je formátovací řetězec. +more Formátovací řetězec se vypíše, ale některé dvojice znaků se nahradí dalšími parametry funkce.

DvojznakNahrazení
%cznak
%dčíslo
%očíslo v osmičkové soustavě
%sřetězec
%%%
.

Ukázka kódu

Hello world: main { extrn a, b, c; /* Externí proměnné */ putchar(a); /* "hell" */ putchar(b); /* "o, w" */ putchar(c); /* "orld" */ putchar('. *n'); /* ". +more" a konec řádku */ } a 'hell'; /* Definice externích proměnných */ b 'o, w'; c 'orld'; Jednoduché počítání: main /*Tento program vypíše součet a+b*/ { auto a, b, soucet; /* Vytvoření proměnných */ a = 1; b = 2; soucet = a+b; /* Součet */ putnumb(sum); /* Výpis */ }.

Externí odkazy

https://www.bell-labs.com/usr/dmr/www/btut.html * https://www.bell-labs.com/usr/dmr/www/bref.html

Kategorie:Programovací jazyky

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top