Związane z: Make a; # interpreter and Generate; # code
;# - Przewodnik Whirlwind
Jest to prosty język z dwoma poleceniami. Jego jedyną strukturą danych jest akumulator, który jest inicjowany na 0.
;Zwiększyć akumulator#Oblicz wartość modułu 127 akumulatora i wydrukuj odpowiedni znak ASCII. Następnie zresetuj akumulator do 0.
Kod źródłowy może zawierać dodatkowe znaki (drukowalne ASCII + białe znaki), ale są one traktowane jako komentarze i nie mają wpływu na wykonanie programu.
Wyzwanie
Ponieważ większość komputerów nie jest ;#fabrycznie zainstalowana, bardzo przydatne byłoby posiadanie narzędzia do konwersji ;#kodu na inny język. W tym wyzwaniu napiszesz program, aby to osiągnąć.
Wkład
Trochę ;#kodu źródłowego pobranego przez argument lub STDIN. Ten kod źródłowy może zawierać (komentarz) znaki inne niż ;lub #.
Wydajność
Kod w tym samym języku, co przesłanie, który po uruchomieniu drukuje / zwraca ten sam ciąg znaków, co oryginalny ;#kod. Ten wynikowy kod może wyświetlać końcowy znak nowej linii po ciągu docelowym, jeśli jest to wygodniejsze dla twojego języka.
Notatki
Należy zwrócić uwagę na sekwencje specjalne, takie jak kod drukujący odwrotne ukośniki lub znaki cudzysłowu. Uważaj również na ;#kod, który może zawierać rzeczy, które wyglądają jak słowa kluczowe lub polecenia w twoim języku.
Dodatkowe ograniczenia
Wszystkie programy muszą zostać zakończone (zwykle uważam to za domyślne, ale ktoś o to zapytał, więc tutaj to stwierdzam).
Przykłady
input: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#
output (python): print(";#")
input: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#
output (element): \'`
;lub #?
;#fabrycznie zainstalowany ...