Życzenia świąteczne składane w czterech językach

W związku ze zbliżającymi się świętami Bożego Narodzenia oraz Nowego Roku, pragniemy wszystkim życzyć tego czego sobie wymarzą, w aż czterech językach.

Wesołych Świąt, w C, Pascalu, FORTRANie, i PHP

const a = '''; void b()/*'; var b:string;{
c */ { /*
c document.fgColor='#ffffff'";
cos(1);print "Merry Christmas" ?>
17 format('Merry Christmas')
write(6, 15)
stop
end
c */
char *a = "}begin b:='{"; } int main () { /*'; writeln{*/
char cbuf[64]; sprintf(cbuf, "}('Merry Christmas') end. {");
cbuf[29] = ''; printf(cbuf+3); return 0; }

Szczęśliwego Nowego Roku, w C, FORTRANie, C Shell i Bourne Shell

cat /*dev/null; echo "Happy New Year"!
cat <<c*/ /*dev/null | cat > /dev/null
c */ () {} /*
c */ main() { cat(); printf("Happy New Year!n"); } /*
17      format('  Happy New Year!')
        write (6,17)
        stop
        end
c This program runs in four languages with the same effect.
c The languages are C, Fortran, C Shell and Bourne Shell.
c Written by Vadim Antonov, avg@hq.demos.su
c*/

Oba te programy zadziałają w wymienionych językach, bez żadnych modyfikacji.

żadnych reklam, sama wiedza.

Zarejestruj się na BEZPŁATNY NEWSLETTER i raz w tygodniu otrzymuj najważniejsze wiadmości
ze świata IT, nowych technologii i kryptowalut.

Bez reklam.

27 odpowiedzi na „Życzenia świąteczne składane w czterech językach”
  1. Awatar lordmorgul
    lordmorgul

    Apogeum geekostwa.

    1. Awatar michuk
      michuk

      Dla tego serwisu to komplement 🙂

  2. Awatar Gf
    Gf

    A czemu to nie jest po polsku? Bo okazuje się, że ŻADEN z tych języków nie umie w UNICODE?

    1. Awatar Husio
      Husio

      $ echo "Wesołych Świąt"
      Wesołych Świąt

      #include

      int
      main(int argc, char** argv)
      {
      printf("Wesołych Świąt
      ");
      return 0;
      }
      Zgadnij jaki wynik… Z tego co słyszałem php nie radzi sobie z utf, a reszty po prostu nie znam.

  3. Awatar dws
    dws

    Jakoś nie rozumiem, mimo, że znam C, Pascala i PHP / C, Bourne Shell… Taki miks 4 języków da się (skompilować i) uruchomić? Jeśli tak to w czym (GCC – jak?)

    1. Awatar bolo
      bolo

      Na tym to właśnie polega… ten sam kod można skompilować kompilatorem C (bo jest poprawnym kodem C), kompilatorem Pascala (bo jest poprawnym kodem Pascalowym), uruchomić w interpreterze PHP (bo …) i w Bourne Shellu (…).

      Po angielsku można o tym poczytać w Wikipedii pod hasłem: Polyglot_(computing)
      Jest m.in. link do kodu interpretowalnego w 8 językach: COBOL, Pascal, Fortran, C, PostScript, Unix shell, język maszynowy Intel x86, Perl 5.

    2. Awatar abc
      abc

      Wywal sobie to co jest komentarzem w każdym języku lub co jest pomijane w inny sposób i dostaniesz wynik, np w C:
      cat () {} main() { cat(); printf(”Happy New Year!
      ”); }

  4. Awatar bolo
    bolo

    W pierwszym przykładzie powinno być chyba:
    <code>write (6,17)</code>
    Paroletnie doświadczenie w programowaniu w Fortranie przydaje się w najmniej oczekiwanych momentach 😉

    1. Awatar szmergiell
      szmergiell

      Kopiowałem ze strony FSF, więc nie wiem jak powinno być 🙂
      W razie czego, to warto by im było zgłosić.

      1. Awatar bolo
        bolo

        Fakt. Zgłosiłem. Można łatwo sprawdzić, że tak jak jest jest źle, po prostu próbując skompilować dowolnym kompilatorem Fortranu (np. g77). Druga sprawa, to wcięcia w tych wierszach:
        <code>1234567</code>
        <code>   17 format('Merry Christmas')</code>
        <code>      write(6, 17)</code>
        <code>      stop</code>
        <code>      end</code>
        Kod w Fortranie 77 pisze się od 7-mej kolumny. Jeśli w pierwszej kolumnie pojawi się "c", wiersz traktowany jest jako komentarz. To fajna cecha z punktu widzenia tego typu zabaw, ułatwia zadanie 😉

  5. Awatar JaZ
    JaZ

    Jakby nie do końca:

    $ bash a.c
    “Happy New Year”!
    a.c: line 3: błąd składni w pobliżu nieoczekiwanego tokenu '('
    a.c: line 3: `c */ () {} /*'

    $ gcc a.c
    a.c: In function ‘main’:
    a.c:1: warning: incompatible implicit declaration of built-in function ‘printf’
    a.c:1: error: stray ‘342’ in program
    a.c:1: error: stray ‘200’ in program
    a.c:1: error: stray ‘235’ in program
    a.c:1: error: ‘Happy’ undeclared (first use in this function)
    a.c:1: error: (Each undeclared identifier is reported only once
    a.c:1: error: for each function it appears in.)
    a.c:1: error: expected ‘)’ before ‘New’
    a.c:1: error: stray ‘’ in program
    a.c:1: error: stray ‘342’ in program
    a.c:1: error: stray ‘200’ in program
    a.c:1: error: stray ‘235’ in program

    $ bash –version
    GNU bash, version 3.2.25(1)-release (x86_64-pc-linux-gnu)

    $ gcc –version
    gcc (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)

    1. Awatar JaZ
      JaZ

      Zwracam honor. Oryginalne skrypty działają OK. Skrypty zamieszczone w tej notce nie są poprawne.

      1. Awatar michuk
        michuk

        Teraz powinno być ok. Głupi wordpress usunął wszystko międzu < a >

        1. Awatar krzychoocpp
          krzychoocpp

          Jeszcze nie jest do końca dobrze. Cudzosłowy i apostrofy powinny być zwykłe, a tu są jakieś stuningowane.

        2. Awatar szmergiell
          szmergiell

          Spróbuj teraz. Wkleiłem jeszcze raz i teraz wygląda na to, że nawiasy są OK. Nie wiem jak pozostałe rzeczy.
          Pzdr.

      2. Awatar skiter
        skiter

        http://www.gnu.org/fun/jokes/happy-new-year.cfbC….

  6. Awatar sawyer
    sawyer

    Niezłe, niezłe, naprawdę geekowskie. Ja co najwyżej mogę napisać w Perlu/Ruby/Pythonie: `print(“Merry Christmas”)` 🙂

  7. Awatar 3ED
    3ED

    KISS:

    #!/bin/bash
    echo "Happy New Year!"

    1. Awatar michuk
      michuk

      🙂 🙂

  8. Awatar adaml
    adaml

    Skompilowało się to komuś pod gcc?
    Mam na myśli ten kod:

    cat /*dev/null; echo “Happy New Year”!
    cat /dev/null
    c */ () {} /*
    c */ main() { cat(); printf(”Happy New Year!
    ”); } /*
    17 format(’ Happy New Year!’)
    write (6,17)
    stop
    end
    c This program runs in four languages with the same effect.
    c The languages are C, Fortran, C Shell and Bourne Shell.
    c Written by Vadim Antonov, avg@hq.demos.su
    c*/

    Pod sh/csh zadziałało ale pod gcc juz nie:(

  9. Awatar p
    p

    Patrzę i coś mi się nie zgadza… miały być 4 języki, a są tylko 2 listingi. I jakieś dziwne takie

    1. Awatar szmergiell
      szmergiell

      Bo oba listingi tyczą się odpowiednich czterech języków 🙂

  10. Awatar adas
    adas

    Hmm… A mi pod Fortranem nie działa…

  11. Awatar haael
    haael

    Życzenia można składać na wiele sposobów.

    #!/bin/tail -n+2
    Wesołych świąt

    Plikowi trzeba nadać atrybut wykonywalności i uruchomić.

  12. Awatar Wiru
    Wiru

    W PHP nie działa, za to wypisuje ślicznie cały kod. W innych nie sprawdzałem

    1. Awatar budzor
      budzor

      a slyszales o czyms takim jak ?

  13. Awatar Moarc
    Moarc

    Pierwszy przykład:
    PHP Parse error: syntax error, unexpected T_CONST in /home/Moarc/mas.php on line 2

    GCC zwraca "/usr/bin/ld:mas.php: file format not recognized; treating as linker script
    /usr/bin/ld:mas.php:1: syntax error
    collect2: ld returned 1 exit status" reszty języków nie sprawdzałem. To lipa :p
    EDIT: Żeby skompilować jako program C wystarczyło zmienić rozszerzenie pliku na .c
    To hańba, żeby w Linuksie pliki były identyfikowane po rozszerzeniu zamiast po np. nagłówku. 😀
    W Fortranie i Pascalu nie sprawdzałem.
    Drugi zaś przykład działa poprawnie we wszystkich językach. Fortrana nie testowałem.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *