16.06.2015 Views

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

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Sterowniki <strong>prog</strong>ramowalne MAX Logic<br />

zasadzie „ostatni przyszedł – pierwszy wyszedł” (last‐in, first‐out [LIFO]). Jest on przeznaczony do przekazywania<br />

parametrów i danych między poszczególnymi poleceniami. Stos można porównać z talią kart: położenie nowego elementu<br />

na stos można porównać z położeniem nowej karty na wierzchu talii, a zdjęcie elementu ze stosu ze zdjęciem karty z talii.<br />

Słowa w języku <strong>ForthLogic</strong> wykorzystują górne elementy stosu z reguły w charakterze operandów, zabierając je ze stosu i<br />

przywracając w ich miejsce wyniki, jeżeli takie są. Każdy ze stosów może pomieścić maksymalnie 16 elementów.<br />

W celu opisania słów służących do pracy ze stosami danych i matematycznym zastosujemy poniższy schemat:<br />

nazwa szczyt stosu przed ‐‐‐> szczyt stosu po<br />

słowa wykonaniem słowa wykonaniem słowa<br />

Uwaga! Najwyższy element na stosie (dodany jako ostatni) znajduje się po prawej.<br />

Do pracy ze szczytem stosu danych (3 górne elementy) służą słowa:<br />

DUP (od DUPLICATE – powielić) ‐ kopiuje górny element stosu danych, dodając do stosu jeszcze jeden element, równy<br />

temu, który wcześniej był górnym.<br />

DROP (usunąć) ‐ usuwa górny element ze stosu danych.<br />

OVER (przez) ‐ kopiuje element, znajdujący się na stosie bezpośrednio pod górnym i kładzie go na szczyt stosu.<br />

ROT (od ROTATE ‐ obracać) ‐ cyklicznie przestawia trzy górne elementy na stosie zgodnie z ruchem wskazówek zegara.<br />

SWAP (wymienić) ‐ zamienia miejscami dwa górne elementy na stosie danych.<br />

DUP A, B, C ‐‐‐> A, B, C, C<br />

DROP A, B, C ‐‐‐> A, B<br />

OVER A, B, C ‐‐‐> A, B, C, B<br />

ROT A, B, C, ‐‐‐> B, C, A<br />

SWAP A, B, C ‐‐‐> A, C, B<br />

Do pracy z dowolnym elementem stosu służą słowa:<br />

PICK (wziąć) ‐ powiela n dany element stosu (licząc od zera) i kładzie go na szczyt stosu (0 PICK = DUP; 1 PICK = OVER).<br />

ROLL (obrócić) ‐ przestawia n górny element stosu (licząc od zera) na szczyt stosu zgodnie z ruchem wskazówek zegara (2<br />

ROLL = ROT; 1 ROLL = SWAP; 0 ROLL jest „pustą” operacją).<br />

PICK An,An‐1,...Ao,n ‐‐‐> An,An‐1,...Ao,An<br />

ROLL An,An‐1,...Ao,n ‐‐‐> An‐1,...Ao,An<br />

Słowo . (kropka) ‐ zdejmuje element z wierzchołka stosu, wprowadza go do bufora wyjściowego i drukuje na terminalu<br />

jako liczbę całkowitą (bez początkowych zer i ze znakiem minus, jeśli jest to liczba ujemna).<br />

Jeśli użytkownik chce, aby wydrukowany element został na stosie, powinien wprowadzić następujący tekst:<br />

> DUP .<br />

Słowo DUP utworzy kopię górnego elementu, a kropka go zdejmie ze stosu i wydrukuje.<br />

Do pracy z wierzchołkiem stosu matematycznego (3 górne elementy) służą słowa:<br />

FDUP (od DUPLICATE ‐ powielać) – powiela wierzchołek stosu matematycznego, dodając do stosu jeszcze jeden element,<br />

równy temu, który wcześniej był górnym.<br />

FDROP (usunąć) ‐ usuwa górny element stosu matematycznego.<br />

FOVER (przez) ‐ powiela element stosu matematycznego, znajdujący się na stosie bezpośrednio pod górnym i kładzie go<br />

na szczyt stosu.<br />

FROT (od ROTATE – obracać) – cyklicznie przestawia trzy górne elementy na stosie matematycznym zgodnie z ruchem<br />

wskazówek zegara.<br />

FSWAP (wymienić) ‐ zamienia miejscami dwa górne elementy stosu matematycznego.<br />

FDUP A, B, C ‐‐‐> A, B, C, C<br />

FDROP A, B, C ‐‐‐> A, B<br />

‐ 12 ‐

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!