Polyglot
A polyglot is a program that contains code in more than one language and produces the same output when it is compiled, assembled or interpreted in all of them. The most famous example is Polyglot.
The original 1991 version contained seven languages, the 10th Anniversary Edition from 2001 added an eight, Perl.
Please note that the blank lines are essential (in some languages) and that the highlighting of some languages is rather screwed up...
Copyright
The following can be found on the original page, emphasis added:
Copying Polyglot
We have had a couple of enquiries about copying polyglot and including it in various Linux distributions.
Polyglot is in the public domain. You are free to do as you please with it. If you do use it, an acknowledgement would be nice.
The authors are Kevin Bungard, Peter Lisle, and Chris Tham. You can contact them here. Thanks goes to George Janczuk.
See Also
COBOL
(*O/*_/
Cu #%* )pop mark/CuG 4 def/# 2 def%%%%@@P[TX---P\P_SXPY!Ex(mx2ex("SX!Ex4P)Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*+Ex=
CuG #%* POLYGLOT - a program in eight languages 15 February 1991 *+Ex=
CuG #%* 10th Anniversary Edition 1 December 2001 *+Ex=
CuG #%* *+Ex=
CuG #%* Written by Kevin Bungard, Peter Lisle, and Chris Tham *+Ex=
CuG #%* *+Ex=
CuG #%* Polyglot suports the following languages: *+Ex=
CuG #%* 1. COBOL (ANSI) *+Ex=
CuG #%* 2. Pascal (ISO) *+Ex=
CuG #%* 3. Fortran (ANSI, f77) *+Ex=
CuG #%* 4. C (ANSI-ish) *+Ex=
CuG #%* 5. PostScript *+Ex=
CuG #%* 6. Linux/Unix shell script (bash, sh, csh) *+Ex=
CuG #%* 7. Intel x86 machine language (MS-DOS, Win32, Linux) *+Ex=
CuG #%* 8. Perl (version 5) *+Ex=
CuG #%* *+Ex=
CuG #%* Usage: *+Ex=
CuG #%* 1. Rename this file to polyglot.[cob|pas|f77|c|ps|sh|com|pl] *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Compile and run with your favorite compiler and operating *+Ex=
CuG #%* system. *+Ex=
CuG #%* *+Ex=
CuG #%* Notes: *+Ex=
CuG #%* 1. We have attempted to use only standard language features. *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Without the -traditional flag gcc will issue a warning. *+Ex=
CuG #%* *+Ex=
CuG #%* 3. When transferring from Unix to DOS make sure that a LF *+Ex=
CuG #%* is correctly translated into a CR/LF. *+Ex=
CuG #%* *+Ex=
CuG #%* 4. Keep the black lines at the start of the program. They *+Ex=
CuG #%* are important. *+Ex=
CuG #%* *+Ex=
CuG #%* 5. This text is a comment block in all eight languages. *+Ex=
CuG #%* *+Ex=
CuG #%* Please mail any comments, corrections or additions to *+Ex=
CuG #%* polyglot@ideology.com.au *+Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*QuZ=
CuG #%* *+Ex=
CuG #%*!Mx)ExQX5ZZ5SSP5n*5X!)Ex+ExPQXH,B+ExP[-9A-9B(g?(gA'UTTER_XYZZXX!X *+
CuG #(* *(
C # */); /*(
C # *) program polyglot (output); (*+
C # identification division.
C # program-id. polyglot.
C #
C # data division.
C # procedure division.
C #
C # * ))cleartomark /Bookman-Demi findfont 36 scalefont setfont (
C # * (
C #
C # * hello polyglots$
C # main.
C # perform
C /# * ) 2>_$$; echo "hello polyglots"; rm _$$; exit;
C # * (
C #
C *0 ) unless print "hello polyglots\n"; __END__
print
C stop run.
-*, 'hello polyglots'
C
C print.
C display "hello polyglots". (
C */ int i; /*
C */ main () { /*
C */ i=printf ("hello polyglots\n"); O= &i; return *O; /*
C *) (*
C *) begin (*
C *) writeln ('hello polyglots'); (*
C *) (* )
C * ) pop 60 360 (
C * ) pop moveto (hello polyglots) show (
C * ) pop showpage ((
C *)
end .(* )
C)pop% program polyglot. *){*/}
Pascal
(*O/*_/
Cu #%* )pop mark/CuG 4 def/# 2 def%%%%@@P[TX---P\P_SXPY!Ex(mx2ex("SX!Ex4P)Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*+Ex=
CuG #%* POLYGLOT - a program in eight languages 15 February 1991 *+Ex=
CuG #%* 10th Anniversary Edition 1 December 2001 *+Ex=
CuG #%* *+Ex=
CuG #%* Written by Kevin Bungard, Peter Lisle, and Chris Tham *+Ex=
CuG #%* *+Ex=
CuG #%* Polyglot suports the following languages: *+Ex=
CuG #%* 1. COBOL (ANSI) *+Ex=
CuG #%* 2. Pascal (ISO) *+Ex=
CuG #%* 3. Fortran (ANSI, f77) *+Ex=
CuG #%* 4. C (ANSI-ish) *+Ex=
CuG #%* 5. PostScript *+Ex=
CuG #%* 6. Linux/Unix shell script (bash, sh, csh) *+Ex=
CuG #%* 7. Intel x86 machine language (MS-DOS, Win32, Linux) *+Ex=
CuG #%* 8. Perl (version 5) *+Ex=
CuG #%* *+Ex=
CuG #%* Usage: *+Ex=
CuG #%* 1. Rename this file to polyglot.[cob|pas|f77|c|ps|sh|com|pl] *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Compile and run with your favorite compiler and operating *+Ex=
CuG #%* system. *+Ex=
CuG #%* *+Ex=
CuG #%* Notes: *+Ex=
CuG #%* 1. We have attempted to use only standard language features. *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Without the -traditional flag gcc will issue a warning. *+Ex=
CuG #%* *+Ex=
CuG #%* 3. When transferring from Unix to DOS make sure that a LF *+Ex=
CuG #%* is correctly translated into a CR/LF. *+Ex=
CuG #%* *+Ex=
CuG #%* 4. Keep the black lines at the start of the program. They *+Ex=
CuG #%* are important. *+Ex=
CuG #%* *+Ex=
CuG #%* 5. This text is a comment block in all eight languages. *+Ex=
CuG #%* *+Ex=
CuG #%* Please mail any comments, corrections or additions to *+Ex=
CuG #%* polyglot@ideology.com.au *+Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*QuZ=
CuG #%* *+Ex=
CuG #%*!Mx)ExQX5ZZ5SSP5n*5X!)Ex+ExPQXH,B+ExP[-9A-9B(g?(gA'UTTER_XYZZXX!X *+
CuG #(* *(
C # */); /*(
C # *) program polyglot (output); (*+
C # identification division.
C # program-id. polyglot.
C #
C # data division.
C # procedure division.
C #
C # * ))cleartomark /Bookman-Demi findfont 36 scalefont setfont (
C # * (
C #
C # * hello polyglots$
C # main.
C # perform
C /# * ) 2>_$$; echo "hello polyglots"; rm _$$; exit;
C # * (
C #
C *0 ) unless print "hello polyglots\n"; __END__
print
C stop run.
-*, 'hello polyglots'
C
C print.
C display "hello polyglots". (
C */ int i; /*
C */ main () { /*
C */ i=printf ("hello polyglots\n"); O= &i; return *O; /*
C *) (*
C *) begin (*
C *) writeln ('hello polyglots'); (*
C *) (* )
C * ) pop 60 360 (
C * ) pop moveto (hello polyglots) show (
C * ) pop showpage ((
C *)
end .(* )
C)pop% program polyglot. *){*/}
Fortran
(*O/*_/
Cu #%* )pop mark/CuG 4 def/# 2 def%%%%@@P[TX---P\P_SXPY!Ex(mx2ex("SX!Ex4P)Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*+Ex=
CuG #%* POLYGLOT - a program in eight languages 15 February 1991 *+Ex=
CuG #%* 10th Anniversary Edition 1 December 2001 *+Ex=
CuG #%* *+Ex=
CuG #%* Written by Kevin Bungard, Peter Lisle, and Chris Tham *+Ex=
CuG #%* *+Ex=
CuG #%* Polyglot suports the following languages: *+Ex=
CuG #%* 1. COBOL (ANSI) *+Ex=
CuG #%* 2. Pascal (ISO) *+Ex=
CuG #%* 3. Fortran (ANSI, f77) *+Ex=
CuG #%* 4. C (ANSI-ish) *+Ex=
CuG #%* 5. PostScript *+Ex=
CuG #%* 6. Linux/Unix shell script (bash, sh, csh) *+Ex=
CuG #%* 7. Intel x86 machine language (MS-DOS, Win32, Linux) *+Ex=
CuG #%* 8. Perl (version 5) *+Ex=
CuG #%* *+Ex=
CuG #%* Usage: *+Ex=
CuG #%* 1. Rename this file to polyglot.[cob|pas|f77|c|ps|sh|com|pl] *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Compile and run with your favorite compiler and operating *+Ex=
CuG #%* system. *+Ex=
CuG #%* *+Ex=
CuG #%* Notes: *+Ex=
CuG #%* 1. We have attempted to use only standard language features. *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Without the -traditional flag gcc will issue a warning. *+Ex=
CuG #%* *+Ex=
CuG #%* 3. When transferring from Unix to DOS make sure that a LF *+Ex=
CuG #%* is correctly translated into a CR/LF. *+Ex=
CuG #%* *+Ex=
CuG #%* 4. Keep the black lines at the start of the program. They *+Ex=
CuG #%* are important. *+Ex=
CuG #%* *+Ex=
CuG #%* 5. This text is a comment block in all eight languages. *+Ex=
CuG #%* *+Ex=
CuG #%* Please mail any comments, corrections or additions to *+Ex=
CuG #%* polyglot@ideology.com.au *+Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*QuZ=
CuG #%* *+Ex=
CuG #%*!Mx)ExQX5ZZ5SSP5n*5X!)Ex+ExPQXH,B+ExP[-9A-9B(g?(gA'UTTER_XYZZXX!X *+
CuG #(* *(
C # */); /*(
C # *) program polyglot (output); (*+
C # identification division.
C # program-id. polyglot.
C #
C # data division.
C # procedure division.
C #
C # * ))cleartomark /Bookman-Demi findfont 36 scalefont setfont (
C # * (
C #
C # * hello polyglots$
C # main.
C # perform
C /# * ) 2>_$$; echo "hello polyglots"; rm _$$; exit;
C # * (
C #
C *0 ) unless print "hello polyglots\n"; __END__
print
C stop run.
-*, 'hello polyglots'
C
C print.
C display "hello polyglots". (
C */ int i; /*
C */ main () { /*
C */ i=printf ("hello polyglots\n"); O= &i; return *O; /*
C *) (*
C *) begin (*
C *) writeln ('hello polyglots'); (*
C *) (* )
C * ) pop 60 360 (
C * ) pop moveto (hello polyglots) show (
C * ) pop showpage ((
C *)
end .(* )
C)pop% program polyglot. *){*/}
C
(*O/*_/
Cu #%* )pop mark/CuG 4 def/# 2 def%%%%@@P[TX---P\P_SXPY!Ex(mx2ex("SX!Ex4P)Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*+Ex=
CuG #%* POLYGLOT - a program in eight languages 15 February 1991 *+Ex=
CuG #%* 10th Anniversary Edition 1 December 2001 *+Ex=
CuG #%* *+Ex=
CuG #%* Written by Kevin Bungard, Peter Lisle, and Chris Tham *+Ex=
CuG #%* *+Ex=
CuG #%* Polyglot suports the following languages: *+Ex=
CuG #%* 1. COBOL (ANSI) *+Ex=
CuG #%* 2. Pascal (ISO) *+Ex=
CuG #%* 3. Fortran (ANSI, f77) *+Ex=
CuG #%* 4. C (ANSI-ish) *+Ex=
CuG #%* 5. PostScript *+Ex=
CuG #%* 6. Linux/Unix shell script (bash, sh, csh) *+Ex=
CuG #%* 7. Intel x86 machine language (MS-DOS, Win32, Linux) *+Ex=
CuG #%* 8. Perl (version 5) *+Ex=
CuG #%* *+Ex=
CuG #%* Usage: *+Ex=
CuG #%* 1. Rename this file to polyglot.[cob|pas|f77|c|ps|sh|com|pl] *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Compile and run with your favorite compiler and operating *+Ex=
CuG #%* system. *+Ex=
CuG #%* *+Ex=
CuG #%* Notes: *+Ex=
CuG #%* 1. We have attempted to use only standard language features. *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Without the -traditional flag gcc will issue a warning. *+Ex=
CuG #%* *+Ex=
CuG #%* 3. When transferring from Unix to DOS make sure that a LF *+Ex=
CuG #%* is correctly translated into a CR/LF. *+Ex=
CuG #%* *+Ex=
CuG #%* 4. Keep the black lines at the start of the program. They *+Ex=
CuG #%* are important. *+Ex=
CuG #%* *+Ex=
CuG #%* 5. This text is a comment block in all eight languages. *+Ex=
CuG #%* *+Ex=
CuG #%* Please mail any comments, corrections or additions to *+Ex=
CuG #%* polyglot@ideology.com.au *+Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*QuZ=
CuG #%* *+Ex=
CuG #%*!Mx)ExQX5ZZ5SSP5n*5X!)Ex+ExPQXH,B+ExP[-9A-9B(g?(gA'UTTER_XYZZXX!X *+
CuG #(* *(
C # */); /*(
C # *) program polyglot (output); (*+
C # identification division.
C # program-id. polyglot.
C #
C # data division.
C # procedure division.
C #
C # * ))cleartomark /Bookman-Demi findfont 36 scalefont setfont (
C # * (
C #
C # * hello polyglots$
C # main.
C # perform
C /# * ) 2>_$$; echo "hello polyglots"; rm _$$; exit;
C # * (
C #
C *0 ) unless print "hello polyglots\n"; __END__
print
C stop run.
-*, 'hello polyglots'
C
C print.
C display "hello polyglots". (
C */ int i; /*
C */ main () { /*
C */ i=printf ("hello polyglots\n"); O= &i; return *O; /*
C *) (*
C *) begin (*
C *) writeln ('hello polyglots'); (*
C *) (* )
C * ) pop 60 360 (
C * ) pop moveto (hello polyglots) show (
C * ) pop showpage ((
C *)
end .(* )
C)pop% program polyglot. *){*/}
PostScript
(*O/*_/
Cu #%* )pop mark/CuG 4 def/# 2 def%%%%@@P[TX---P\P_SXPY!Ex(mx2ex("SX!Ex4P)Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*+Ex=
CuG #%* POLYGLOT - a program in eight languages 15 February 1991 *+Ex=
CuG #%* 10th Anniversary Edition 1 December 2001 *+Ex=
CuG #%* *+Ex=
CuG #%* Written by Kevin Bungard, Peter Lisle, and Chris Tham *+Ex=
CuG #%* *+Ex=
CuG #%* Polyglot suports the following languages: *+Ex=
CuG #%* 1. COBOL (ANSI) *+Ex=
CuG #%* 2. Pascal (ISO) *+Ex=
CuG #%* 3. Fortran (ANSI, f77) *+Ex=
CuG #%* 4. C (ANSI-ish) *+Ex=
CuG #%* 5. PostScript *+Ex=
CuG #%* 6. Linux/Unix shell script (bash, sh, csh) *+Ex=
CuG #%* 7. Intel x86 machine language (MS-DOS, Win32, Linux) *+Ex=
CuG #%* 8. Perl (version 5) *+Ex=
CuG #%* *+Ex=
CuG #%* Usage: *+Ex=
CuG #%* 1. Rename this file to polyglot.[cob|pas|f77|c|ps|sh|com|pl] *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Compile and run with your favorite compiler and operating *+Ex=
CuG #%* system. *+Ex=
CuG #%* *+Ex=
CuG #%* Notes: *+Ex=
CuG #%* 1. We have attempted to use only standard language features. *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Without the -traditional flag gcc will issue a warning. *+Ex=
CuG #%* *+Ex=
CuG #%* 3. When transferring from Unix to DOS make sure that a LF *+Ex=
CuG #%* is correctly translated into a CR/LF. *+Ex=
CuG #%* *+Ex=
CuG #%* 4. Keep the black lines at the start of the program. They *+Ex=
CuG #%* are important. *+Ex=
CuG #%* *+Ex=
CuG #%* 5. This text is a comment block in all eight languages. *+Ex=
CuG #%* *+Ex=
CuG #%* Please mail any comments, corrections or additions to *+Ex=
CuG #%* polyglot@ideology.com.au *+Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*QuZ=
CuG #%* *+Ex=
CuG #%*!Mx)ExQX5ZZ5SSP5n*5X!)Ex+ExPQXH,B+ExP[-9A-9B(g?(gA'UTTER_XYZZXX!X *+
CuG #(* *(
C # */); /*(
C # *) program polyglot (output); (*+
C # identification division.
C # program-id. polyglot.
C #
C # data division.
C # procedure division.
C #
C # * ))cleartomark /Bookman-Demi findfont 36 scalefont setfont (
C # * (
C #
C # * hello polyglots$
C # main.
C # perform
C /# * ) 2>_$$; echo "hello polyglots"; rm _$$; exit;
C # * (
C #
C *0 ) unless print "hello polyglots\n"; __END__
print
C stop run.
-*, 'hello polyglots'
C
C print.
C display "hello polyglots". (
C */ int i; /*
C */ main () { /*
C */ i=printf ("hello polyglots\n"); O= &i; return *O; /*
C *) (*
C *) begin (*
C *) writeln ('hello polyglots'); (*
C *) (* )
C * ) pop 60 360 (
C * ) pop moveto (hello polyglots) show (
C * ) pop showpage ((
C *)
end .(* )
C)pop% program polyglot. *){*/}
UNIX Shell
(*O/*_/
Cu #%* )pop mark/CuG 4 def/# 2 def%%%%@@P[TX---P\P_SXPY!Ex(mx2ex("SX!Ex4P)Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*+Ex=
CuG #%* POLYGLOT - a program in eight languages 15 February 1991 *+Ex=
CuG #%* 10th Anniversary Edition 1 December 2001 *+Ex=
CuG #%* *+Ex=
CuG #%* Written by Kevin Bungard, Peter Lisle, and Chris Tham *+Ex=
CuG #%* *+Ex=
CuG #%* Polyglot suports the following languages: *+Ex=
CuG #%* 1. COBOL (ANSI) *+Ex=
CuG #%* 2. Pascal (ISO) *+Ex=
CuG #%* 3. Fortran (ANSI, f77) *+Ex=
CuG #%* 4. C (ANSI-ish) *+Ex=
CuG #%* 5. PostScript *+Ex=
CuG #%* 6. Linux/Unix shell script (bash, sh, csh) *+Ex=
CuG #%* 7. Intel x86 machine language (MS-DOS, Win32, Linux) *+Ex=
CuG #%* 8. Perl (version 5) *+Ex=
CuG #%* *+Ex=
CuG #%* Usage: *+Ex=
CuG #%* 1. Rename this file to polyglot.[cob|pas|f77|c|ps|sh|com|pl] *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Compile and run with your favorite compiler and operating *+Ex=
CuG #%* system. *+Ex=
CuG #%* *+Ex=
CuG #%* Notes: *+Ex=
CuG #%* 1. We have attempted to use only standard language features. *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Without the -traditional flag gcc will issue a warning. *+Ex=
CuG #%* *+Ex=
CuG #%* 3. When transferring from Unix to DOS make sure that a LF *+Ex=
CuG #%* is correctly translated into a CR/LF. *+Ex=
CuG #%* *+Ex=
CuG #%* 4. Keep the black lines at the start of the program. They *+Ex=
CuG #%* are important. *+Ex=
CuG #%* *+Ex=
CuG #%* 5. This text is a comment block in all eight languages. *+Ex=
CuG #%* *+Ex=
CuG #%* Please mail any comments, corrections or additions to *+Ex=
CuG #%* polyglot@ideology.com.au *+Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*QuZ=
CuG #%* *+Ex=
CuG #%*!Mx)ExQX5ZZ5SSP5n*5X!)Ex+ExPQXH,B+ExP[-9A-9B(g?(gA'UTTER_XYZZXX!X *+
CuG #(* *(
C # */); /*(
C # *) program polyglot (output); (*+
C # identification division.
C # program-id. polyglot.
C #
C # data division.
C # procedure division.
C #
C # * ))cleartomark /Bookman-Demi findfont 36 scalefont setfont (
C # * (
C #
C # * hello polyglots$
C # main.
C # perform
C /# * ) 2>_$$; echo "hello polyglots"; rm _$$; exit;
C # * (
C #
C *0 ) unless print "hello polyglots\n"; __END__
print
C stop run.
-*, 'hello polyglots'
C
C print.
C display "hello polyglots". (
C */ int i; /*
C */ main () { /*
C */ i=printf ("hello polyglots\n"); O= &i; return *O; /*
C *) (*
C *) begin (*
C *) writeln ('hello polyglots'); (*
C *) (* )
C * ) pop 60 360 (
C * ) pop moveto (hello polyglots) show (
C * ) pop showpage ((
C *)
end .(* )
C)pop% program polyglot. *){*/}
x86 Assembly
(*O/*_/
Cu #%* )pop mark/CuG 4 def/# 2 def%%%%@@P[TX---P\P_SXPY!Ex(mx2ex("SX!Ex4P)Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*+Ex=
CuG #%* POLYGLOT - a program in eight languages 15 February 1991 *+Ex=
CuG #%* 10th Anniversary Edition 1 December 2001 *+Ex=
CuG #%* *+Ex=
CuG #%* Written by Kevin Bungard, Peter Lisle, and Chris Tham *+Ex=
CuG #%* *+Ex=
CuG #%* Polyglot suports the following languages: *+Ex=
CuG #%* 1. COBOL (ANSI) *+Ex=
CuG #%* 2. Pascal (ISO) *+Ex=
CuG #%* 3. Fortran (ANSI, f77) *+Ex=
CuG #%* 4. C (ANSI-ish) *+Ex=
CuG #%* 5. PostScript *+Ex=
CuG #%* 6. Linux/Unix shell script (bash, sh, csh) *+Ex=
CuG #%* 7. Intel x86 machine language (MS-DOS, Win32, Linux) *+Ex=
CuG #%* 8. Perl (version 5) *+Ex=
CuG #%* *+Ex=
CuG #%* Usage: *+Ex=
CuG #%* 1. Rename this file to polyglot.[cob|pas|f77|c|ps|sh|com|pl] *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Compile and run with your favorite compiler and operating *+Ex=
CuG #%* system. *+Ex=
CuG #%* *+Ex=
CuG #%* Notes: *+Ex=
CuG #%* 1. We have attempted to use only standard language features. *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Without the -traditional flag gcc will issue a warning. *+Ex=
CuG #%* *+Ex=
CuG #%* 3. When transferring from Unix to DOS make sure that a LF *+Ex=
CuG #%* is correctly translated into a CR/LF. *+Ex=
CuG #%* *+Ex=
CuG #%* 4. Keep the black lines at the start of the program. They *+Ex=
CuG #%* are important. *+Ex=
CuG #%* *+Ex=
CuG #%* 5. This text is a comment block in all eight languages. *+Ex=
CuG #%* *+Ex=
CuG #%* Please mail any comments, corrections or additions to *+Ex=
CuG #%* polyglot@ideology.com.au *+Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*QuZ=
CuG #%* *+Ex=
CuG #%*!Mx)ExQX5ZZ5SSP5n*5X!)Ex+ExPQXH,B+ExP[-9A-9B(g?(gA'UTTER_XYZZXX!X *+
CuG #(* *(
C # */); /*(
C # *) program polyglot (output); (*+
C # identification division.
C # program-id. polyglot.
C #
C # data division.
C # procedure division.
C #
C # * ))cleartomark /Bookman-Demi findfont 36 scalefont setfont (
C # * (
C #
C # * hello polyglots$
C # main.
C # perform
C /# * ) 2>_$$; echo "hello polyglots"; rm _$$; exit;
C # * (
C #
C *0 ) unless print "hello polyglots\n"; __END__
print
C stop run.
-*, 'hello polyglots'
C
C print.
C display "hello polyglots". (
C */ int i; /*
C */ main () { /*
C */ i=printf ("hello polyglots\n"); O= &i; return *O; /*
C *) (*
C *) begin (*
C *) writeln ('hello polyglots'); (*
C *) (* )
C * ) pop 60 360 (
C * ) pop moveto (hello polyglots) show (
C * ) pop showpage ((
C *)
end .(* )
C)pop% program polyglot. *){*/}
Perl
(*O/*_/
Cu #%* )pop mark/CuG 4 def/# 2 def%%%%@@P[TX---P\P_SXPY!Ex(mx2ex("SX!Ex4P)Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*+Ex=
CuG #%* POLYGLOT - a program in eight languages 15 February 1991 *+Ex=
CuG #%* 10th Anniversary Edition 1 December 2001 *+Ex=
CuG #%* *+Ex=
CuG #%* Written by Kevin Bungard, Peter Lisle, and Chris Tham *+Ex=
CuG #%* *+Ex=
CuG #%* Polyglot suports the following languages: *+Ex=
CuG #%* 1. COBOL (ANSI) *+Ex=
CuG #%* 2. Pascal (ISO) *+Ex=
CuG #%* 3. Fortran (ANSI, f77) *+Ex=
CuG #%* 4. C (ANSI-ish) *+Ex=
CuG #%* 5. PostScript *+Ex=
CuG #%* 6. Linux/Unix shell script (bash, sh, csh) *+Ex=
CuG #%* 7. Intel x86 machine language (MS-DOS, Win32, Linux) *+Ex=
CuG #%* 8. Perl (version 5) *+Ex=
CuG #%* *+Ex=
CuG #%* Usage: *+Ex=
CuG #%* 1. Rename this file to polyglot.[cob|pas|f77|c|ps|sh|com|pl] *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Compile and run with your favorite compiler and operating *+Ex=
CuG #%* system. *+Ex=
CuG #%* *+Ex=
CuG #%* Notes: *+Ex=
CuG #%* 1. We have attempted to use only standard language features. *+Ex=
CuG #%* *+Ex=
CuG #%* 2. Without the -traditional flag gcc will issue a warning. *+Ex=
CuG #%* *+Ex=
CuG #%* 3. When transferring from Unix to DOS make sure that a LF *+Ex=
CuG #%* is correctly translated into a CR/LF. *+Ex=
CuG #%* *+Ex=
CuG #%* 4. Keep the black lines at the start of the program. They *+Ex=
CuG #%* are important. *+Ex=
CuG #%* *+Ex=
CuG #%* 5. This text is a comment block in all eight languages. *+Ex=
CuG #%* *+Ex=
CuG #%* Please mail any comments, corrections or additions to *+Ex=
CuG #%* polyglot@ideology.com.au *+Ex=
CuG #%* *+Ex=
CuG #%*------------------------------------------------------------------*QuZ=
CuG #%* *+Ex=
CuG #%*!Mx)ExQX5ZZ5SSP5n*5X!)Ex+ExPQXH,B+ExP[-9A-9B(g?(gA'UTTER_XYZZXX!X *+
CuG #(* *(
C # */); /*(
C # *) program polyglot (output); (*+
C # identification division.
C # program-id. polyglot.
C #
C # data division.
C # procedure division.
C #
C # * ))cleartomark /Bookman-Demi findfont 36 scalefont setfont (
C # * (
C #
C # * hello polyglots$
C # main.
C # perform
C /# * ) 2>_$$; echo "hello polyglots"; rm _$$; exit;
C # * (
C #
C *0 ) unless print "hello polyglots\n"; __END__
print
C stop run.
-*, 'hello polyglots'
C
C print.
C display "hello polyglots". (
C */ int i; /*
C */ main () { /*
C */ i=printf ("hello polyglots\n"); O= &i; return *O; /*
C *) (*
C *) begin (*
C *) writeln ('hello polyglots'); (*
C *) (* )
C * ) pop 60 360 (
C * ) pop moveto (hello polyglots) show (
C * ) pop showpage ((
C *)
end .(* )
C)pop% program polyglot. *){*/}