[3274] in bugtraq

home help back first fref pref prev next nref lref last post

polyglots (multi-language programs)

daemon@ATHENA.MIT.EDU (John Nemeth)
Sun Aug 25 02:44:10 1996

Date: 	Sat, 24 Aug 1996 15:45:56 -0700
Reply-To: Bugtraq List <BUGTRAQ@NETSPACE.ORG>
From: John Nemeth <jnemeth@cue.bc.ca>
To: Multiple recipients of list BUGTRAQ <BUGTRAQ@NETSPACE.ORG>

     I know this is off topic for this group, but in the space of a few
days I have received 50+ requests for the seven language program that I
mentioned.  So, here it is (plus a four language one that I have):

Article 1356 of comp.lang.misc:
Path: sol.UVic.CA!ubc-cs!uw-beaver!zephyr.ens.tek.com!uunet!mcsun!hp4nl!star.cs.vu.nl!maart
From: maart@cs.vu.nl (Maarten Litmaath)
Newsgroups: comp.lang.misc,alt.folklore.computers
Subject: multilanguage programs
Message-ID: <6944@star.cs.vu.nl>
Date: 16 Jun 90 04:08:54 GMT
Sender: news@cs.vu.nl
Reply-To: maart@cs.vu.nl (Maarten Litmaath)
Organization: VU Informatika, Amsterdam, The Netherlands
Lines: 19

Here's my contribution.

--------------------cut here--------------------
                                                                        (* /*
C > /) 2> /dev/null & echo hello world!; exit
*       This file is correct input for:
*       sh, cc, pc, f77
*/ main(program)) { puts("hello world!"); /*
*) program main(output);begin writeln('hello world!')end. {
      write( *, '("hello world!")')
      end
*/ return &program; }
--------------------cut here--------------------

Who's got a source using more languages (in parallel)?  Can anyone extend
my example?
--
 "COBOL is the revenge of some witch burned |Maarten Litmaath @ VU Amsterdam:
   in Salem, [...]"  (Bill Davidsen)  |maart@cs.vu.nl, uunet!cs.vu.nl!maart

Article 3253 of comp.lang.misc:
Xref: sol.UVic.CA rec.puzzles:1808 comp.lang.misc:3253 alt.folklore.computers:2852
Path: sol.UVic.CA!ubc-cs!uw-beaver!mit-eddie!snorkelwacker.mit.edu!spool.mu.edu!uunet!munnari.oz.au!metro!news
From: peril@extro.ucc.su.OZ.AU (Peter Lisle)
Newsgroups: rec.puzzles,comp.lang.misc,alt.folklore.computers
Subject: A polyglot program
Message-ID: <1991Mar18.131907.11757@metro.ucc.su.OZ.AU>
Date: 18 Mar 91 13:19:07 GMT
Article-I.D.: metro.1991Mar18.131907.11757
Sender: news@metro.ucc.su.OZ.AU
Organization: Uni Computing Service, Uni of Sydney, Australia
Lines: 97
Nntp-Posting-Host: extro.ucc.su.oz.au

A little while ago some people were talking about polyglot programs in
rec.puzzles, these are programs that are written in several languages.
We thought it sounded like fun so we wrote this one.

Our friends suggested we should post it -- so here it is, let us know
what you think.


-------- cut here (keep the blank lines: they are important) --------


                                                                         (*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 seven languages      15 February 1991  *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*   Written by Kevin Bungard, Peter Lisle, and Chris Tham          *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*   We have successfully run this program using the following:     *+Ex=
CuG #%*     ANSI COBOL:            MicroFocus COBOL85 (not COBOL74)      *+Ex=
CuG #%*     ISO  Pascal:           Turbo Pascal (DOS & Mac), Unix PC,    *+Ex=
CuG #%*                            AIX VS Pascal                         *+Ex=
CuG #%*     ANSI Fortran:          Unix f77, AIX VS Fortran              *+Ex=
CuG #%*     ANSI C (lint free):    Microsoft C, Unix CC, GCC, Turbo C++, *+Ex=
CuG #%*                            Think C (Mac)                         *+Ex=
CuG #%*     PostScript:            GoScript, HP/Adobe cartridge,         *+Ex=
CuG #%*                            Apple LaserWriter                     *+Ex=
CuG #%*     Shell script:          gnu bash, sh (SysV, BSD, MKS), ksh    *+Ex=
CuG #%*     8086 machine language: MS-DOS 2.00, 3.03, 4.01, 5.00 beta    *+Ex=
CuG #%*                            VPix & DOS Merge (under unix)         *+Ex=
CuG #%*                            SoftPC (on a Mac), MKS shell          *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*   Usage:                                                         *+Ex=
CuG #%*     1. Rename this file to polyglot.[cob|pas|f77|c|ps|sh|com]    *+Ex=
CuG #%*     2. Compile and/or run with appropriate compiler and          *+Ex=
CuG #%*        operating system                                          *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*   Notes:                                                         *+Ex=
CuG #%*     1. We have attempted to use only standard language features. *+Ex=
CuG #%*        Without the -traditional flag gcc will issue a warning.   *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*     2. This text is a comment block in all seven languages.      *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*     3. When run as a .COM file with MS-DOS it makes certain      *+Ex=
CuG #%*        (not unreasonable) assumptions about the contents of      *+Ex=
CuG #%*        the registers.                                            *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*     4. When transfering from Unix to DOS make sure that a LF     *+Ex=
CuG #%*        is correctly translated into a CR/LF.                     *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*   Please mail any comments, corrections or additions to          *+Ex=
CuG #%*   peril@extro.ucc.su.oz.au                                       *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*------------------------------------------------------------------*QuZ=
CuG #%*                                                                  *+Ex=
CuG #%*!Mx)ExQX4ZPZ4SP5n#5X!)Ex+ExPQXH,B+ExP[-9Z-9Z)GA(W@'UTTER_XYZZY'CPK*+
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
              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.                                      *){*/}
------------------------------ cut here --------------------------------------

Have fun...

Peter

home help back first fref pref prev next nref lref last post