Tłumaczenie programów na język powłoki

0

no mam zrobić zadanie ale nie rozumiem co znaczy "tłumaczenie" w poniższym poleceniu.

Polecenie:

Napisz program w języku powłoki, który będzie tłumaczył proste programy napisane w języku Pascal na programy napisane w języku powłoki. Program powinien być wyposażony w diagnostykę -tzn informować których sekwencji nie można przetłumaczyć.

Wiem że mogę zainstalować sobie kompilator (np fpc) Pascala ale wtedy będzie każdy program śmigał.. więc o to na pewno nie chodzi bo ma być diagnostyka. O co w tym chodzi?

0

Przypuszczam że ma przerobić pascala na skrypty bash-a, język powłoki kojarzy mi się tylko z nim

0

Bash to rozszerzenie Sh (powłoka Shell). Tych powłok jest dużo, np. csh, ksh, zsh i o wiele więcej. Po prostu nie mam pojęcia jak do tego podejść -> co szukam na angielskich stronach to wszystko jest poprzez dodanie kompilatora a to wydaje się nie mieć sensu właśnie z powodu wyżej wymienionej diagnostyki : |

1

W wybranym języku powłoki (np. Bash) masz napisać skrypt, który będzie tłumaczył (transpilował / kompilował / whatever) proste programy napisane w Pascalu, na ten język powłoki.

Przykładowo:

begin
  writeln('Hello, World!');
end;
echo 'Hello, World!'

Dodatkowo pewnie jeszcze jakieś zmienne, readln etc.

0

no dobra ale jak ja mam to zrobić? Przecież jeśli podam składnie która nie podlega pod daną powłokę to wywali mi błędy.. o to mi się rozchodzi, to że muszę zrobić coś takiego to wiem ale nie mam pojęcia jak zaimplementować to bo shell nie czyta takiej składni..

1
Brunatny Samiec napisał(a):

Przecież jeśli podam składnie która nie podlega pod daną powłokę to wywali mi błędy..

Przecież nikt nie każe Ci robić czegoś, czego zrobić się nie da. Twój program ma tłumaczyć kod Pascala na Basha, to co da się przenieść. Jeśli danej konstrukcji nie da się przetłumaczyć, Twój program powinien np. przerwać tłumaczenie i wyświetlić błąd o braku obsługi. I tyle.

O szczegóły implementacyjne pytaj prowadzącego, bo to on będzie oceniał Twój program.

0

bo shell nie czyta takiej składni..

Co znaczy takiej składni? Przecież składnie wynikową definiujesz ty! Możesz matchować sobie instrukcje pascala regexpami jakimiś a potem generować na tej podstawie wyjściowe stringi, a jak się nic nie zmatchuje to wypisywać error podajac linijkę która się nie parsuje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1