From: jjt@aristotle.Jpl.Nasa.Gov (Jack Tuszynski)
Newsgroups: soc.culture.polish
Subject: Re: Polskie nagrania / Polish music
Date: 26 Jul 92 03:20:50 GMT
Organization: Jet Propulsion Laboratory, NASA/Caltech

Oops!  Wyslalem na ta siec kilka godzin temu wydanie ktore
wykonane bylo kilka dni temu.  Mialo kilka poszczegolnych bledow
jezykowych.  Najnowsze wydanie artykulu wysylam teraz. 



                 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 grupy wewnatz 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 procesu i otworzyc baze danych
pytan i odpowiedzi na ten program */

setlocale(LC_ALL,"");
catd = catopen("sample.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 otoczenie na podstawowe z pomoca
'LC_ALL'.  Podstawowe 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.  Otoczenie podstawowe moze byc
otoczenie danego okna w ktorym program dziala, to znaczy procesu,
albo otoczenie calego obejmujacego systemu.

Komenda 'catopen' otwiera baze danych.  'catd' jest wskazowka na
zbior.  A SETN to jest grupa wyrazow wewnatz otwartego zbioru. 
Nazwa bazy danych jest "sample.catalog".   Znajduje sie w
/usr/lpp/msg/Pl.PL/sample.catalog.  Decyzja w jakim jezyku
znajdzie sie ta baza danych jest podjeta przewaznie na zewnatrz
programu.  Na to potrzebny jest sposob porozumienia sie miedzy
programem a systemem operacyjnym.  W programie uzywalismy jezyka
C i systemu operacyjnego OSF/1.  Te zasady sa zaznaczone w OSF/1
z pomoca zmiennosci LANG, ktory jest nastawiony na polski poza
programem.

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

Po tym 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".


     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
to pies obronny z trzema glowami).
Newsgroups: soc.culture.polish