10 lat, 12 języków, 2430 bajtów
Ta odpowiedź to współpraca między mną a użytkownikiem 1000000000 .
Krótka lista języków:
Brainfuck 1993
Befunge 1993
Piet 2001
Whitespace 2003
Braincopter 2005
Grass 2007
Starry 2008
Paintfuck 2008
Brainbool 2010 (11111011010)
Python 2.7.2 2011
Fission 2014
Brainflak 2016
Oto kod:
P3v="";print(sum([ord(x)for x in"~~~~~~~~~~~~~~~y"]));"""{}{} + + +---[. + +.. '.. +. +.. +. +. +.] + + + + + + +(((((()()()()){}){}){}){})({({} +-[<() + + + + + + +>-()])}{}<[. + + + + + + + +..------- ` +.[-]]>)[< '
17 12
# > 7*::,8 +:,,2 +,@<>R"2014";]*ne*e*es*s*swWWW*swWWWW*sw*e*e*e*eeev*wn*n*n*n*ne*e*se*s*s*s*sWWwWWWw**e*eeee*vwn*n*n*n*ne*e*se*s*s*s*sWWWw*eeee*e*ne*n*nWWWWWw*ne*nWWWWWWw*w*sw*se*sWWWWWWWw*s*WWWWWWwwwWWWWWWWWWWwWWWWWWWWWWwvwWWWwWWWWwvwWWwWWWwvwWWwWWWwvwWWwWWWwvwWWwwwwwwwwwwwWWWwWWWWWwWWWWWWWwWWWWWWWWWwWWWWWWWWWWWWWWWwWWWWWWWWWWWWwv `
255 0 255 255 0 192 192 0 192 192 0 192 192 192 255
255 192
255 255 192
255
255
0 255 255 0 255 255 0 255 255 0 255 255 0 192 192 192 255 255 255 255 255 0 192 192 0 0 255 255 255
255 0 0 255 0 192 192 0 192 192 0 192 192 192 255 255 192 255 255 192 255 255 192 255 255 0 255 255 0 255 255 0 255 255 0 192 192 255 255 255 255 255 255 255 255 255 255 255 255 0 192
192 0 0 255 0 192 192 0 192 192 0 192 192 0 192 192 192 255 255 192 255 255 192 255 255 0 255 255 0 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 255 255
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 192
192 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 255 255
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 192
192 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0
192 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0 0 0 0 0 255 255
255 0 192 192 0 0 255 0 0 255 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 255 255 255 255 255 255 0 0 255 0 0 255 0 255 255 0 0 0 0 192 192 0 0
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0 0 0 192 192 0 192 192
# """
Aby dopasować to do odpowiedzi, zrezygnuję z całych linków TIO i raczej po prostu opublikuję link do ważnego interpretera, w którym użytkownik może wprowadzić kod. Oto link do tego Pastebin .
Piet
Format pliku PPM , jeden z formatów graficznych, które interpreter Piet używaliśmy może odczytywać, posiada wersję zwykłego tekstu ASCII. Dzięki temu mogliśmy osadzić kod innych języków jako śmieci w pliku obrazu odczytanym przez Piet i Braincopter.
Obraz wygląda następująco:
Nie wszystkie zdjęcia są ważne dla Piet. Oto wersja z linią podkreślającą ścieżkę, którą Piet podąża za kodem:
Pomimo nieco skomplikowanych metod tworzenia programu sam program jest dość prosty. Wzdłuż górnej krawędzi obrazu przesuwa 1 10 10 10 2
się na stos; wzdłuż boku mnoży się trzykrotnie i dodaje raz. W dolnym rogu wyświetla wynik (2001), a następnie zatrzymuje się.
Braincopter
Braincopter to drugi język wizualny. Do ppm
uruchomienia działa również ten sam plik obrazu. Ze względu na bardzo surowe ograniczenia np. Nasz kod Braincopter może używać tylko podzbioru oryginalnych operacji Braincopter. Jesteśmy ograniczeni do używania kolorów, które są ważne w Piet. To usuwa -
operatora z Braincopter.
Oto ścieżka wyznaczona przez kod Braincoptera:
Program Braincopter jest nieco dziwny z powodu braku -
operatora. Ściany niebieskozielonego i ciemnobłękitnego służą do przekierowania wskaźnika, ale poza tym są identyczne z następującym pieprzeniem mózgu:
++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++..+++++.
To drukuje 2005.
Paintfuck
Paintfuck jest trzecim wizualnym językiem programowania na naszej liście, jednak zamiast pobierania obrazu i wysyłania tekstu, Paintfuck pobiera tekst i wysyła obraz.
Ponieważ Paintfuck ignoruje nieistotne znaki, ponieważ brak operacji, większość kodu jest nieistotna. Odpowiednia sekcja kodu to:
nsn**ne*e*es*s*sw*sw*sw*e*e*e*eee*wn*n*n*n*ne*e*se*s*s*s*sww**e*eeee*wn*n*n*n*ne*e*se*s*s*s*sw*eeee*e*ne*n*nw*ne*nw*w*sw*se*sw*s*wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwnsn**ne*e*es*s*sw*sw*sw*e*e*e*eee*wn*n*n*n*ne*e*se*s*s*s*sww**e*eeee*wn*n*n*n*ne*e*se*s*s*s*sw*eeee*e*ne*n*nw*ne*nw*w*sw*se*sw*s*wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
Chociaż nie są to żadne operacje, w
s na końcu kodu nic nie robią. Są tam po trawiastą część roztworu. n
, e
, s
, I w
służą do poruszania się po obrazie i *
służy do wykreślić punkt w określonym miejscu. Program generuje:
Większa wersja:
Brainfuck
Podobnie jak Paintfuck Brainfuck ignoruje większość postaci. Jeszcze raz najważniejsze są:
[]+++---[.++....+.+..+.+.+.]++++++++-[<+++++++>-]<[.++++++++..-------+.[-]]>[<>,+,,+,<>]
Większość z nich jest dodatkowo nieistotna z uwagi na okoliczności i po prostu są to znaki, których potrzebuje inny język. Węższa wersja tego kodu to:
+++++++[<+++++++>-]<[.++++++++..------.[-]]
To po prostu drukuje 1993
.
Brainbool
Brainbool jest bardzo podobny do Brainfuck w doborze postaci. Dużą różnicą, która pozwala na połączenie tych dwóch elementów, jest brak -
Brainbool. Ważnymi postaciami dla Brainbool są:
[]+++[.++....+.+..+.+.+.]++++++++[<+++++++>]<[.++++++++..+.[]]>[<>,+,,+,<>]
Wyniki Brainbool i brainfuck wykluczają się wzajemnie. Brainbool ukrywa swoje wyjście w drugim zestawie []
. Brainfuck napotyka, +++---
zanim osiągnie wartość [
zerową i powoduje pominięcie wyjścia, podczas gdy Brainbool widzi +++
ustawienie tylko na 1, powodując przejście przez pętlę. Podobnie Brainbool jest ustawiony na zero w czwartej pętli, co powoduje przeskakiwanie, gdy Brainfuck wchodzi do pętli o wartości 49.
Ponieważ Brainbool nie ma wyjścia dziesiętnego, wypisuje 2010 w postaci binarnej:
11111011010
Rozszczepienie
Jedyną częścią kodu, która jest ważna dla rozszczepienia, jest:
R"2014";
Na R
wezwanie w atomie porusza się w prawo, z "2014"
nadrukami 2014
i ;
wstrzymuje wykonania.
Befunge
Befunge przechodzi tylko przez następujące postacie:
P3v
7
> 7*::,8 +:,,2 +,@
Są P3
one niezbędne do utworzenia prawidłowego obrazu .ppm dla polecenia piet i kumulacyjnego wypychania 3 na stos. v
umieszcza przekierować wskaźnik w dół. Następnie przechodzi przez 7
w 17
użyte w celu wskazania szerokości obrazu .ppm. >
Przekierowuje kursor w prawo. 7*
mnoży górę stosu przez 7, pozostawiając 49 (wartość ASCII z 1
) na szczycie stosu. ::
dwukrotnie duplikuje górę stosu. Dane 1
wyjściowe są generowane przez ,
. 8 +
dodaje 8 do górnego przyrostu do ASCII 9
. :,,
wysyła 9
dwa razy. 2 +
inkrementuje ASCII 1
do ASCII 3
i ,
drukuje. Wreszcie @
kończy program.
W sumie drukuje 1993
.
Biała przestrzeń
Biała spacja, jak może sugerować nazwa, używa tylko białych znaków w swoich programach. Oto, co widzi tłumacz WhiteSpace:
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][LF]
[Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Tab][Tab][Tab][Tab][Tab][Space][Tab][Space][Space][Tab][Tab][LF]
[Tab][LF]
[Space][Tab][LF]
[LF]
[LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][LF]
Większość tego, co robi ten kod, nie ma znaczenia dla wykonania programu (wszystkie wiersze zawierające tylko spacje po prostu wypychają zero na stos). Ważna część:
[Space][Space][Space][Tab][Tab][Tab][Tab][Tab][Space][Tab][Space][Space][Tab][Tab][LF]
[Tab][LF]
[Space][Tab][LF]
[LF]
[LF]
Pierwsza linia wypycha 2003 na stos. Następnie [Tab][LF][Space][Tab]
drukuje górną część stosu (2003) jako liczbę. Na koniec trzy ostatnie przejścia liniowe kończą wykonywanie programu.
Trawa
Trawa ignoruje wszystko aż pierwszy znak w
w pliku i po, że wszystkie znaki, które nie są w
, W
lub v
. Tłumacz Grassa brzmi:
wWWWwWWWWwv
wWWwWWWwv
wWWWwWWWWWwWWWWWWwwwWWWWWWWwWWWWWWwwwWWWWWWWWWWwWWWWWWWWWWwv
wWWWwWWWWwv
wWWwWWWwv
wWWwWWWwv
wWWwWWWwv
wWWwwwwwwwwwwwWWWwWWWWWwWWWWWWWwWWWWWWWWWwWWWWWWWWWWWWWWWwWWWWWWWWWWWWwv
Pierwszy wiersz definiuje funkcję, która dodaje dwa do wszystkiego, co jest przekazywane. Druga linia definiuje funkcję, która dodaje cztery do tego, co jest przekazywane. Trzeci definiuje funkcję, która wypisuje dwa plus argument, dwa razy argument, następnie wreszcie siedem plus argument (Grass wypisuje znaki na podstawie wartości ASCII). Czwarta, piąta i szósta linia definiują funkcje, które odpowiednio dodają osiem, 16, 32 i 64. Ostatni wiersz definiuje główną funkcję, która przyjmuje znak w
(jedyna predefiniowana liczba w Grass, wartość ASCII 119) i dodaje do niej 185 za pomocą funkcji add zdefiniowanych w programie, a także wbudowanej funkcji add one. Trawa zawija liczby na 256, więc wynik to 48 (odpowiadający znakowi0
). Następnie funkcja przekazuje to do funkcji trzeciego wiersza, który wypisuje 2007.
Gwiaździsty
Gwiaździste ignoruje wszystko, z wyjątkiem miejsca, +
, *
, .
, ,
, `
, i '
. Tak więc gwiaździsty tłumacz widzi tylko:
+ + +. + +.. '.. +. +.. +. +. +. + + + + + + + + + + + + + + +. + + + + + + + +.. ` +. '
*, +,, +,************************************************* `
Jednak etykiety i instrukcje skoku są używane do pomijania części kodu, które mogą powodować problemy, jeśli zostaną uruchomione, więc kod działa w następujący sposób:
+ + +. + +.. ' ` +. ' `
Ten kod wypycha dwa na stos, duplikuje go dwukrotnie, a następnie wyskakuje i drukuje jeden z nich jako liczbę. Następnie wypycha zero, powiela je i drukuje oba zera jako liczby. Następnie wyskakuje jedno z nich i skacze, a następnie przesuwa siódemkę na stos, a wyskakuje i drukuje jako liczbę. W końcu wyskakuje dwa ostatnie na stosie i przeskakuje na koniec programu.
Python 2.7.2
Kod Python ma następujący format:
P3v="";print(sum([ord(x)for x in"~~~~~~~~~~~~~~~y"]));"""..."""
gdzie ...
oznacza wszystkie inne śmieci.
Pierwszy wiersz P3v=""
jest tam, ponieważ aby być poprawnym .ppm
plikiem, nasz kod musi zaczynać się od P3
tego, zwykle będzie to błąd, ale jeśli powiemy Pythonowi, że jest to deklaracja zmiennej, zignoruje go.
Następnie musimy wydrukować 2011
. Jednak ze względu na sposób .ppm
formatowania nie możemy w tym wierszu zawierać żadnych liczb. Aby obejść ten problem, sumujemy wszystkie wartości ASCII łańcucha "~~~~~~~~~~~~~~~y"
i wypisujemy wynik. Wreszcie używamy potrójnych cytatów komentarza wielowierszowego, aby python ignorował wszystko inne.
Brainflak
Najlepsze zostawiliśmy na koniec.
Brainflak, podobnie jak inne, ignoruje większość postaci. Odpowiednie postacie to:
(([()])){}{}[](((((()()()()){}){}){}){})({({}[<()>()])}{}<[[]]>)[<><>]
Kod python (([()]))
, wypycha -1 do stosu dwukrotnie, więc należy go usunąć, zanim program zacznie przetwarzać.
Następnie Brainbool używa []
nilada, który nic nie robi i program się rozpoczyna.
(((((()()()()){}){}){}){})({({}[<()>()])}{}<[[]]>)
popycha 2016. Ostatni [<><>]
to resztki Befunge i Brainfuck, ale na szczęście nic nie robi.
Po zakończeniu programu drukuje zawartość stosu, czyli drukuje 2016
.
źródło
We saved the best for last
. : DOdpowiedzi:
5 lat
1989: C89 [1] i 1999: C99
Komentarz jednowierszowy
//
został dodany w C99, więc kompilator C89 odczytałby ten kod jakoc=-4.5 / /*comment*/ -4.5
, który jest taki sam jakc=-4.5 / -4.5
, podczas gdy kompilator C99 odczytałby jakoc=-4.5 //comment/**/
- 4.5
, który jest taki sam jakc=-4.5 - 4.5
.Część Python jest komentarzem w programie C.
2010: Python 2.7 i 2015: Python 3.5
Dokumenty różnią się w Pythonie 3 i 2, ten program wykorzystuje długość dokumentów do wykrycia wersji Pythona.
Część C znajduje się w ciągu znaków w programie Python.
1993 [2] : Brainfuck
Zasadniczo ignoruje wszystko, co nie jest
.,[]+-<>
. Ponieważ program C ma,
w sobie, musiałem zmusić Brainfuck do odrzucenia tej części poprzez ustawienie bieżącego bajtu na 0.źródło
-4.5/-4.5
i-4.5-4.5
. Łączenie dwóch wersji każdego z dwóch głównych języków jest imponujące, nawet bez wrzucania tam BF :-)a=
linia 2 nie jest potrzebnaa=
i dało to błąd, więc postanowiłem go zatrzymać. Nie wiem jednak, dlaczego wystąpił błąd, prawdopodobnie literówka.15 lat, JavaScript
Ponieważ cykl wydawania JavaScript jest bardzo nietypowy i niespójny, zamierzam użyć implementacji Firefoksa. Daj mi znać, jeśli nie jest to dozwolone.
Wersje: Phoenix 0.1 , Firebird 0.6 , Firefox 1.0.0 , 1.5.0 , 2.0.0 , 3.0 Beta 1 , 3.0.0 , 3.5.0 , 3.6.0 , 4.0.0 , 10.0.0 , 18.0.0 , 27.0 .0 , 35.0.0 , 44.0.0 (wszystkie testowane w systemie Windows 7)
Ważna uwaga: instalacja i otwarcie przeglądarki Firefox 1.0.0 lub dowolnej późniejszej wersji może usunąć wszystkie zapisane dane Firefoksa , w tym historię i zakładki.
Począwszy od wersji 1.0.0, możesz mieć otwartą tylko jedną wersję na raz; próba otwarcia innej wersji powoduje otwarcie nowego okna już otwartej wersji.
Instrukcje
Kod
źródło
<!--<<<<-[>+<-----]>--.++++++++..------.[-][-->
przed skryptem i inny komentarz HTML zawierający tylko]
później.6 języków, Turtlèd and brainfuck , Python 3.5, Python 2.7, > <> , Fission
Turtlèd nie istniał przed tym rokiem, więc jest tak obiektywny, nawet jeśli zatwierdzenia github się nie liczą, a BF ma dowód strony esolang, wydany w 1993 roku. Python 3.5 to 2015, 2.7 to 2010.> <> także ma stronę esolang , z 2009 r., podobnie jak Fission, 2014
Prawdopodobnie powinienem przypisać stronę stałych bf na esolangach ... ¯ \ _ (ツ) _ / ¯
Jak to działa, rodzaj:
Turtlèd:
Turtlèd tak naprawdę nie robi nic dla linii innych niż pierwsza:
/ jest nop
Brainfuck
Brainfuck ignoruje znaki w swoich poleceniach
widzi
-[>+<-----]>--.++++++++..------.
(ostatni. pochodzi z części python)który po prostu robi Brainfuck, używa zawijania, aby podzielić 255 przez 5, a następnie odjąć 2 od wyniku, wydrukować, zwiększyć 8 razy, wydrukować dwa razy, zmniejszyć 6 razy, wydrukować
Python 2 i 3
długość dokumentacji dla len różni się w zależności od wersji, więc drukuje rok dla wersji 3, jeśli jest odpowiedniej długości, w przeciwnym razie dla wersji 2.
> <>
# Odzwierciedla wskaźnik wstecz, więc uderza / po drugiej stronie tej linii, przechodzi przez przestrzeń pomiędzy
else
i2010
, następnie odbija znowu uderzy „2009”, spychając 9,0,0,2 na stosie, a następnie drukowanie odwrócone .Rozszczepienie
Rozszczepienie ma spawnery, więc możemy mieć linię na dole, którą wykonuje samodzielnie:
źródło
3 lata, 3 języki: C, TeX, MIXAL
Nazwij plik
date.mixal
.1990
dostdout
.tex date.mixal
; drukuje1982
do plikuO.tex
(zignoruj wyjście DVI).mixasm date.mixal
i uruchom zmixvm -r date.mix
; drukuje1997
na urządzeniu typu teletekstu (=stdout
).Programy TeX i MIXAL są w komentarzu w programie C; program MIXAL pojawia się później,
\bye
więc TeX go ignoruje. Programy C i TeX są komentarzem w programie MIXAL. Z jakiegoś powodugcc
jest skłonny to zaakceptować*main
.źródło
3 lata (GolfScript, CJam, MATL),
2423 bajtyTo wychodzi
2007
w GolfScript.2015
w CJam (wersja 0.6.5).2016
w MATL (wersja 19.2.0).Wyjaśnienie
Golfscript
Niezdefiniowane tokeny to nuty w GolfScript . Jedyne części kodu, które faktycznie coś robią, to:
CJam
MATL
Wszystko od
%
początku jest komentarzem.źródło
%
zdobyciu [11 10]. To nie ma znaczenia.2 języki, Python 2.7 i Python 3.5
Python 2.7 został wydany w 2010 roku .
Python 3.5 został wydany w 2015 roku .
Zależy to od PEP 238, w którym operator
/
zmieniono z dzielenia liczb całkowitych w Pythonie 2 na dzielenie zmiennoprzecinkowe w Pythonie 3.źródło
'2010'if 3/2>1else'2015'
zamiast tego zrobić ?print(int(2010+1/2*10))
print('2015'if 1/2else'2010')
jest lepiej8 lat, TI-Basic
„Każdy program może drukować do STDERR lub generować błędy czasu wykonania / błędów kompilacji i ostrzeżenia, dopóki prawidłowe wyjście jest nadal drukowane do STDOUT lub pliku.” Obecnie jedynym bezbłędnym wyświetlaniem jest rok, więc przestrzegamy tej zasady. Jednakże, jeśli chcesz napisać do pamięci zamiast wymienić
Disp (date)
z(date)->I
.Bibliografia:
źródło
5 lat, Go 1.0, 1.1, 1.4, 1.5, 1.6:
285257 bajtów(1.2 zostało wydane w 2013 r. Jak 1.1, 1.3 w 2014 r. Jak 1.4, a 1.7 w 2016 r. Jak 1.6.)
Nie przetestowałem tego w każdej wersji, ponieważ mogę uzyskać dostęp tylko do wersji 1.6, ale powinno to działać teoretycznie! Zmiany językowe prawdopodobnie spowodowałyby, że program się nie skompilował, więc polegałem na standardowych zmianach w bibliotece.
Nie golfił i skomentował:
źródło
4 lata, 99 bajtów / 77 znaków
Uwaga: Nie jestem pewien, czy lata są prawidłowe
><>
, 2009Zajęło mi trochę czasu, aby dowiedzieć się, jak sprawić, by Python i JS ze sobą współpracowały.
Wyjaśnienie
v=1//1;"""
ustawia zmiennąv
na1
dzieloną przez1
w Pythonie i na1
JavaScript (//
rozpoczyna komentarz w JavaScript), i;"""
uruchamia ciąg wieloliniowy w Pythonie. Nie;
można go zastąpić nowym wierszem, ponieważ spowoduje to, że JavaScript przestanie działać.1991/*"""
jest resztą ciągu wielowierszowego. Potrzebne jest miejsce, aby> <> nie przesuwał1
się na stos. Ponieważ początek ciągu wielowierszowego był częścią komentarza w JavaScript, drukuje1991
i rozpoczyna komentarz wielowierszowy.for i in[0]:print 2010#🔟😃😇🔟😗➕➕😨
w Pythonie jest pętlą for, która iteruje listę[0]
i uruchamia sięprint 2010
. Komentarz jest po prostu kodem Emotinomicon (ignoruje wszystko, co nie jest emoji lub łańcuchem). W> <> it (f
) wypycha15
na stos.Pętli for nie można usunąć, ponieważ adres IP> <> spada w kolumnie 1 i
p
nie jest prawidłowym poleceniem w> <>. Nie można również zastąpić goif
instrukcją, ponieważi
jest to komenda do wprowadzania danych w> <>."""
jest początkiem ciągu wielowierszowego."
jest częścią ciągu wielowierszowego, potrzebnego do zamknięcia ciągu, który otworzyliśmy w> <> (pierwszy znak cudzysłowu w poprzednim wierszu rozpoczął ciąg w> <>).>9002nnnn;
w> <>, zmienia kierunek IP do prawej, popycha9
,0
,0
i2
, wyjścia te jak numery i kończy program."""#*/
w Pythonie kończy ciąg multilinii i rozpoczyna komentarz. W Javascript*/
powoduje , że komentarz wielowierszowy kończy się.Wersja premiowa z Golem> <>:
5 języków, 4 lata,
118114 bajtów /9692 znakówWyjaśnienie²
Adres IP zaczyna się w lewym górnym rogu, w prawo.
v
Pozwala zejść.f
popycha15
."
zaczyna ciąg.`
służy do ucieczki znaków, czegoś, czego> <> nie ma."
powinien zamknąć ciąg, ale użyliśmy`
, więc nie będzie.>
część łańcucha."
kończy ciąg.>5102nnnn;
jest rzeczywistym kodem.>
czyni IP idź w prawo,5102
popycha5
,1
,0
i2
, annnn;
drukuje numery i kończy program.źródło
SyntaxError: Non-ASCII character '\xf0' in file test.txt on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
)7 lat, 8 przeglądarek
Nie są to daty wydania w języku, ponieważ css tak naprawdę nie ma wydań, ale wersje przeglądarki (może to być może wersja kompilatora?)
W przypadku następujących przeglądarek drukuje nazwę przeglądarki, wersję i datę wydania i nic więcej. Drukuje to samo dla kilku późniejszych wersji (zobaczysz, że chrom jest jedną wersją późno na zrzutach ekranu, ponieważ trudno jest pobrać stare wersje chrome według numeru wersji)
Mogłem wydrukować numer wersji, którego użyłem, ale wolałem pokazać pierwszą wersję, w której wprowadzono używaną funkcję.
index.html
style.css
filter.svg
źródło
3 lata, 89 bajtów
Python 2, JavaScript (ES6) i Perl
Pierwszy
eval
będzie działał1
w Pythonie 2 orazprint=_=>console.log(1995)
w JavaScript i Perlu przy użyciu funkcji dzielenia liczb całkowitych w Pythonie 2. To tworzyprint
funkcję w JavaScript, a Perl tylko cicho dba o błędy składniowe i kontynuuje niezależnie.Drugi
eval
polega na interpolacji Perla przez zmienną$$
(bieżący PID) w ciągu, co będzie prawdziwe, gdy zostanie porównane (za pomocą>
operatora) z"0"
(Python wymaga ciągu w tym porównaniu, podczas gdy Perl domyślnie konwertuje na liczbę całkowitą).Mogłem mieć klakson w większej liczbie języków, ale chciałem mieć rozwiązanie, które nie nadużywałoby komentarzy i działało tylko w „zwykłych” językach.
Skorzystałem z tej strony w Wikipedii, aby pobrać lata użytkowania.
źródło
3 języki, 3 lata
Ad-hoc odpowiedź dla zabawy.
Mouse-2002 : wszystko po
~
jest komentarzem, a pierwsza część, którą można również napisaćC0U!!!
, drukuje2002
.to zatwierdzenie kalkulacyjne kalkulatora oparte na stosie, które właśnie zaprojektowałem w C11 dla Programowania II, część programu przed pierwszą spacją wypisuje błąd (dozwolony w specyfikacji wyzwania) i
2016 !.
drukuje2016
.Brainfuck : drukuje 1993, jak widać w innych odpowiedziach. Ostateczne obce
.
jest ignorowane przezbeef
.Zauważ, że wyświetlanie bieżącego stosu
< stack
przez Calc z każdą niepustą linią wejściową jest częścią pytania>
, a nie częścią wyniku.źródło
Microsoft Excel / Arkusze Google, 22 bajtów
Anonimowa funkcja arkusza roboczego, która nie pobiera danych wejściowych i wyjściowych
1987
w programie Microsoft Excel i2006
Arkuszach Googleźródło
Perl 5 i Perl 6 (2 lata)
Pierwsze wydanie Perla 5 miało miejsce w 1994 roku
Pierwsze oficjalne wydanie Perla 6 miało miejsce w 2015 roku
źródło