A B programozási nyelv

Egyéb



IO hibák kezelése


Az IO használat során felmerülõ hibák kezelésére kétféle lehetõség van.
Default mód esetén például ha sikertelen egy filehoz való hozzáférés, akkor egy hibaüzenetet kapunk és a program befejezõdik.
Az ’anything goes’ mód esetén a felhasználó nem kap üzenetet a hibáról, és a program folytatódik.
Ilyenkor az openr() és openw() függvények 0 értékkel térnek vissza, ha sikeres a file-hoz való hozzáférés,
egyébként pedig nem 0-val. Ha nem létezõ file-ból próbálunk olvasni, akkor a ’*e’ karaktert kapjuk.
A hibakezelés módját az ioerrors(n) rutinnal állíthatjuk.
Ez n = 0 estén ’default’, n = 1 esetén pedig ’anything goes’ módra állítja a hibakezelést.

Fortran és GMAP szubrutinok hívása


A B nyelvbõl kimaradt néhány, egyébként hasznos dolog, például több dimenziós tömbök, std… amik Fortran –ban megtalálhatóak.
Viszont van egy callf() függvény, amivel Fortran és GMAP subrutinokat hívhatunk. Használata:
 
		callf(name, a1, a2, …. ,a10);
		
A ’name’ helyére kerül a Fortran függvény vagy rutin neve, a1 – a10 helyére pedig az argumentumok.
A paramétereket cím szerint kell átadni. Konstansok nem szerepelhetnek az argumentumok helyén.
Példa az aktuális idõ lekérdezésére:
		t = 0;
		tod = callf(itimez, &t);
		

B programok fordítása és futtatása MH TSS rendszer alatt


B programokat a ./bj parancs segítségével futtathatunk. Ezt a programot B. W. Kernighan és C. Johnson implementálták,
és egy felületet biztosít a B frodító és az operációs rendszer között. A szintaktikája a következõ képen néz ki:
	
	./bj [(options)] [source [hstar] ] [spec] [spec] [spec] … 
	
’options’ jrun opciók kerülnek ide
’source’ helyére a cat/file leírása kerül a B forrás file-nak
’hstar’ helyére a cat/file leírása kerul a H* output file-nak
’spec’ lehet a következõ:
	’h=cat/file’ 
	’r =cat/file’ 
	’l=cat/file’ 
	’s=nnn’
	
Utóbbival tudjuk például a stack méretét szabályozni mely alapértelmezésben 500. nnn egy integer.
Pl: ./bj name hstar
Ez a legegyszerûbb parancs. ’name’ a B program neve, amely fordításra kerül, hstar a H* eredmény file.

  • A B nyelv jövõbeni fejlesztésérõl:
    Több funkció is hiányzik a nyelvbõl, melyek hasznosak lehetnének.
    Ilyen például a BCD vagy a bináris file-ok írásának és olvasásának a lehetõsége.
    A legvalószínûbb az IO könyvtár egy közel jövõbeni bõvítése.
    Szinte biztos, hogy a getchar() és putchar() függvények változatlanul maradnak.
    A B nyelv viszonylag jól mûködik a H6070-es rendszeren, de byte címezõ gépek esetén, mint az IBM 360/370 modellek
    vagy a PDP-11, a B kevésbé elõnyös. A sikeres C nyelv a B nyelv byte címezõ gépekre vonatkozó legtöbb elõnyét tartalmazza,
    csakúgy, mint a strukturált programozás lehetõségét. További fejlesztés lehet a debug-olás lehetõségének megteremtése.
  •