ForthLogic inst prog H P.1.2 120113.pdf - F&F
ForthLogic inst prog H P.1.2 120113.pdf - F&F
ForthLogic inst prog H P.1.2 120113.pdf - F&F
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Instrukcja <strong>prog</strong>ramowania w języku <strong>ForthLogic</strong> wersja <strong>P.1.2</strong><br />
FLOG A ‐‐‐> logarytm dziesiętny A log10(A)<br />
FLN A ‐‐‐> logarytm naturalny A ln(A)<br />
FEXP A ‐‐‐> eksponent A<br />
F** A,B ‐‐‐> potęgowanie A do B<br />
FSQRT A ‐‐‐> pierwiastek kwadratowy z A<br />
Wykorzystanie stosu do przechowania elementów przejściowych w sposób naturalny prowadzi do tak zwanej „odwrotnej<br />
notacji polskiej” (Reverse Polish Notation [RPN]) – jednego ze sposobów beznawiasowych obliczeń wyrażeń<br />
arytmetycznych, opracowanego przez polskiego logika Jana Łukasiewicza (1878‐1956). Pozwala to na przeprowadzanie<br />
bieżącej operacji bezpośrednio na wyniku wcześniejszej operacji, który to wynik nie wymaga adresu i odwołania do niego,<br />
ponieważ zostaje pozostawiony i jest od razu zdjęty (wykorzystany) przez następującą po nim operację (idea stosu).<br />
Sposób ten wymaga ustawienie znaku operacji po operandach. Na przykład, wyraz (A/B+C)*(D*E‐F*(G‐H)) zapisuje się w<br />
taki sposób: A B / C + D E * F G H ‐ * ‐ *. Tak, więc forth‐system można wykorzystać jako kalkulator. Aby obliczyć wartość<br />
(25 + 18+32)*5, wystarczy wprowadzić taki tekst:<br />
> 25 18 + 32 + 5 * .<br />
375 (OK)<br />
><br />
Wynikiem jest liczba 375.<br />
Dla liczb zmiennoprzecinkowych podobnie. Aby obliczyć wartość 1.2e‐2*sin(25.23+0.18*3.1415), wprowadzamy tekst:<br />
> 1.2e‐2 25.23 0.18 3.1415 F* F+ FSIN F* F.<br />
0.007383 (OK)<br />
><br />
Wynikiem jest liczba 0,007383.<br />
4.3 DEFINIOWANIE NOWYCH SŁÓW<br />
Podstawową właściwością języka FortLogic jest możliwość definiowania nowych słów, co umożliwia poszerzenie zestawu<br />
poleceń w wymaganym przez użytkownika kierunku. Definiowanie słowa zaczyna się słowem „:” (dwukropek) i kończy się<br />
słowem „;” (średnik). Po dwukropku umieszcza się nazwę nowego słowa, a za nim kolejne słowa, przez które jest ono<br />
definiowane. Na przykład, tekst<br />
> : S2 DUP * SWAP DUP * + ;<br />
(OK)<br />
><br />
definiuje słowo S2, które oblicza sumę kwadratów dwóch liczb:<br />
S2 A,B ‐‐‐> A*A+B*B<br />
Po wprowadzeniu tego opisu słowo S2 zostaje włączone do słownika forth‐systemu i można je wykonywać. Przy<br />
definiowaniu nowych słów zaleca się uważnie prześledzić wszystkie zmiany na stosie.<br />
Prześledźmy podane wyżej określenia słowa S2, podając w nawiasach stan wierzchołka stosu po wykonaniu każdego<br />
wiersza:<br />
> : S2 DUP * SWAP DUP * + ;<br />
: S2 ( A,B ‐‐‐> A*A+B*B ‐ suma kwadratów )<br />
DUP ( A,B,B )<br />
* ( A,B*B )<br />
SWAP ( B*B,A )<br />
‐ 15 ‐