From: jjt@aristotle.Jpl.Nasa.Gov (Jack Tuszynski)
Subject: Re: Polskie nagrania / Polish music
Organization: Jet Propulsion Laboratory, NASA/Caltech
Date: Sat, 25 Jul 1992 23:15:45 GMT

Ponizej jest artykol ktory pisalem i wyslalem dla czasopisma Delty.  
Nieraz juz moje artykuliki wydrukowali, i morze tez ten wydrukuja.
Jest mozliwosc ze was niektorych interesowac ze wzgledu na to ze 
jest to na temat pisma polskiego na ekranach.






                 Programy niezalezne  od jezyka?

                         Jacek Tuszynski
                         Henryk Chrostek

    Czesto uzywajac programow poslugujemy sie komendami i
wyrazami, ktore sa wyswietlane na ekranie.  Nowe systemy
operacyjne pozwolaja na to, aby jezyk programu dzialal osobno od
samego programu w wykonywaniu swoich funkcji.  To pozwala
uzytkownikowi programu na wybor "jezyka" w ktorym bedzie widzial
program na ekranie.  Jak to dziala?.  System polega na
nowoczesnych ekranach ktore uzywaja "okien" na nowych
standardowych systemach operacyjnych jak na przyklad OSF/1, oraz
na komunikacji pomiedzy programem i systemem operacyjnym, ktore
lacza program z bazami komend w danym jezyku.
     W ostatnim czasieiie firma Microsoft wypuscila na rynek system
operacyjny o nazwie "Windows".  Systen ten oparty jest na
"oknach", ktore sa wpisane w ekran i komunikacja oraz egzekucja
komend pomiedzy uzytkownikiem a komputerem odbywa sie przy pomocy
"myszki".  Wkrotce wiele popularnych programow ktore uzywamy beda
pisane z jakas rama "okien" jako polaczenie z uzytkownikiem. 
Najpopularniejszymi systemami "okien" dostepnymi na rynku dzisiaj
sa Microsoft Windows (DOS), Presentation Manager (OS/2),
OpenWindows (SUN OS), MIT X Windows (Unix), oraz Motif (OSF/1). 
"Okna" sa systemami rysunkowymi, to znaczy, ze poza pismen moga
wyswietlac na ekranie caly wachlarz znakow, symboli i oznaczen,
oraz zestaw przeroznych form graficznych. Kiedys "ekrany" byly
ograniczone do amerykanskich i angielskich znakow, natomiast te
obecne pozwalaja na uzywanie roznorodnych czcionek liter, cyfr i
symboli w roznych rozmiarach, kolorach i jezykach. 
     OSF jest to skrot systemu o nazwie "Open Software
Foundation".  To jest specjalny rodzaj systemu operacyjnego dla
maszyn informatycznych ktore dzialaja na bazie systemu
operacyjnego Unix.  Unix jest systemem podobnym do DOS'a z tym,
ze pozwala na prowadzenie wiecej niz jednej operacji jednorazowo. 
To znaczy na przyklad, ze jezeli uzywa sie maszyne aby cos
wydrukowac i druk powiedzmy zajmuje 20 minut, to w tym czasie 
nie mozna uzywac tej maszyny do innych celow. System Unix pozwala
na wiecej niz jedna operacje w tym samym czasie i gdy komenda
jest zeby drukowac system operacyjny to wykonuje, ale uzytkownik
moze rownoczesnie uzywac maszyne do pracy nad innym zadaniem.  
Unix jest systemem  operacyjnym  dla przedsiebiorstw bardziej
powaznych i o wiekszych wymaganiach.  OSF to jest zbior firm
ktore sie zdecydowaly na standardowy Unix.  Przedtem kazda firma
miala swoj Unix i programy sie zamrazaly, lub w ogole nie
dzialaly, gdy byly puszczane na innym Unix-ie. Trzy firmy
informatyczne IBM, HP, i DEC mialy trzy rozne formy Unix-a:  AIX,
HP-UX, i Ultrix.  OSF polaczyl te wlasnie trzy Unix-y, i dodal
tez komedy i formy z Unix-a od kilku firm Europejskich i
Japonskich.  Ciekawostka jest, ze system OSF byl wymagany przez
rzad Polski w czasie przetargu w wyniku ktorego Francuska firma
BULL, ktora jest czlonkiem OSF wygrala kontrakt dotyczacy
sprzedazy Polsce systemu informatycznego, ktory bedzie przeliczal
polskie podatki.
     System OSF bedzie mial mozliwosc odlaczenia programu od
jezyka.  Programy uzywaja komendy jak "pisz" (write,print) i
"czytaj" (read,scan).  Ponizej podajemy przyklad jak wyglada
typowa komeda "czytac" i "pisac":

WRITE ("YES OR NO: ");
READ(ANS);
IF (ANS = 'YES') THEN WRITE ("YES") ELSE WRITE(NO);

Na ekranie jest wyswietlona komenda "YES OR NO: " , czeka na
odpowiedz, i czyta ta odpowiedz do ANS.  Potem wydrukuje "YES"
lub "NO".  Natomiast w systemie OSF komeda "czytac" i "pisac"
wyglada nastepujaco:


#define SETN   7    /* numer zbioru */
#define YORN   56   /* miejsce w bazie danych, pytanie tak/nie */
#define YESN   17   /* miejsce w bazie danych, odpowiedz tak */
#define NON    18   /* miejsce w bazie danych, odpowiedz nie */

/* ustawic otoczenie na jezyk polski i otworzyc baze danych
polskich pytan i odpowiedzi na ten program*/

setlocale(LC_ALL,"POL");
catd = catopen("polish.catalog",SETN);

/* wykonac pytanie i wydrukowac odpowiedz */

printf("%s\n",catgets(catd,SETN,YORN,""));
gets(ans);
if !(NLyesno(ans)) 
          printf("%s\n",catgets(catd,SETN,YESN,"")) 
     else 
          printf("%s\n",catgets(catd,SETN,NON,""));


Komenda 'setlocale' zmienia cale otoczenie 'LC_ALL'.  Cale
otoczenie dotyczy wszystkich zasad danego kraju na przyklad
sposob segregowania liter w alfabetcie 'LC_COLLATE', pieniadze
danego kraju 'LC_MONETARY', czy czas w danym kraju 'LC_TIME',
itd.  

Komenda 'catopen' otwiera baze danych.  To sa dane na ten
program.  Nazywamy ta baze danych SETN i to jest grupa wyrazow
pisanych po polsku.  

Nastepnie komenda 'printf' pisze na ekranie.  Co pisze?   Komenda
'catgets' wewnatrz 'printf' wybiera zdanie YORN z bazy danych
SETN, w jezyku polskim.  Ze wzgledu na to ze SETN jest baza
danych polskich pytan i odpowiedzi i ze otoczenie LC_ALL jest
nastawione na polskie otoczenie, to pytanie YORN na ekranie
zostanie wyswietlone "TAK ALBO NIE".

Nastepnie program bedzie oczekiwal odpowiedzi na pytanie. 
'NLyesorno' jest komeda ktora wedlug Polskiego otoczenia sprawdzi
czy odpowiedz sie odpowiednio porownuje do "TAK" albo "NIE". 
Jesli odpowiedz pasuje, wedlug zasad jezyka otoczenia, to program
z pomoca 'printf' i 'catgets' napisze w odpowiedzi "TAK", albo
"NIE".

W 'setlocale' i 'catopen' uzywalismy "POL" i "polish.catalog"
zeby jasniej pokazac jak otoczenie i baza danych jest wybierana
wewnatrz programu.  Te decyzje moga byc podjete rownierz na
zewnatrz programu.  Na to potrzebny jest sposob porozumienia sie
miedzy jezykiem a systemem operacyjnym.  W programie uzywalismy
jezyka C i systemu operacyjnego OSF/1. 

     Z uwagi na to ze posiadamy coraz wiekszy wybor ekranow na
rynku ktore pozwalaja nam rysowac wszelkimi literami z pomoca
systemow okien, mozemy teraz takze pisac po polsku.  System
miedzynarodowy i poza firmowy OSF/1 jest nowym systemem
operacyjnym ktory w sposobie komunikacji pomiedzy programami a
systemami operacyjnymi pozwala na pisanie w jezyku danego kraju. 
Programy moga byc pisane z pomoca takiego systemu ktore sa
niepodlegle od jezyka w ktorym byly pisane.  Ten sam program 
moze byc rownoczesnie wykorzystywany we Francji jak i w Polsce za
pomoca maszyn polaczonych sieciami.  Na ekranie we Francji
uzytkownik widzi pismo w jezyku Francuskim, a w Polsce w jezyku
Polskim.  Ten nowy system pisania programow z pewnoscia ulatwi
prace i kooperacje pomiedzy informatykami z zroznych krajow i
poslugujacych sie roznymi jezykami.
     
     W nastepnym artykule opisze jak dziala system zabezpieczenia
w OSF/1 nazwany Kerberos (nazwa wzieta z greckiej mitologii-byl