Empty program: Difference between revisions

From Rosetta Code
Content added Content deleted
(add E example)
Line 236: Line 236:
==[[UNIX Shell]]==
==[[UNIX Shell]]==
[[Category:UNIX Shell]]
[[Category:UNIX Shell]]
'''Interpreter:''' [[Debian Almquist SHell]]
'''Interpreter:''' [[bourne SHell]]


#!/bin/sh
#!/bin/sh

Revision as of 23:28, 19 March 2007

Task
Empty program
You are encouraged to solve this task according to the task description, using any language you may know.

In this task, the goal is to create the simplest possible program that is still considered "correct."

Programming Languages

Ada

Compiler: GCC 4.1.2

procedure Empty is 
begin 
   null; 
end;

AppleScript

An empty .scpt file is considered the smallest runnable code, but the following would also be acceptable.

return

AWK

Interpreter: AWK Compilers: awka awkcc (untested)

  BEGIN{}

BASIC

Interpreter: QBASIC

 10 END

C

Compiler: GCC 4.0.3

int main (int argc, char *argv[])
{
  return 0;
}

Works also:

int main ()
{
  return 0;
}

C#

Compiler: Visual C# 2005

static class Program
{
    static void Main(string[] args)
    {
    }
}

C++

Compiler: GCC 4.0.3

int main ( int /*argc*/, char * * /*argv*/ ) 
{
 // Unused arguments should not be named
 // There are variations:
 // 1: main may explicitly return a value
 //    (other non-void-returning C++ functions must do so,
 //    but there's a special exception for main that falling off it
 //    without an explicit return is equivalent to a "return 0;" at
 //    the end of the main function)
 // 2: The arguments may be omitted entirely
}

D

Compiler: DMD 1.002

void main() {
}

E

The shortest possible program:


This is equivalent to:

null

Forth

: main   ;

Fortran

      program nothing
      end

Haskell

Standard: Haskell98

module Main where
main :: IO ()
main = return ()

IDL

end

Java

Compiler: Sun javac, JDK 1.5.0 and up

public class EmptyMainClass {
    public static void main(String[] args) {
    }
}
public class EmptyApplet extends java.applet.Applet {
    @Override public void init() {
    }
}

Compiler: Sun javac, JDK 1.0 and Up

public class EmptyMainClass {
    public static void main(String[] args) {
    }
}
public class EmptyApplet extends java.applet.Applet {
    public void init() {
    }
}

@Override - Indicates that a method declaration is intended to override a method declaration in a superclass. If a method is annotated with this annotation type but does not override a superclass method, compilers are required to generate an error message. It's present from JDK 5.0 (1.5.0) and up.

Actually this is not strictly correct. The smallest possible correct program in Java is an empty source file.

LISP

 ()

This is also the shortest LISP program that prints its own source upon execution.

OCaml

Interpreter/Compiler: Ocaml 3.09

;;

Actually, the smallest possible correct program in OCaml is an empty source file.

Pascal

Compiler: Borland Pascal

program ProgramName;

begin
end.

Perl

Interpreter: Perl 5.8.8

 #!/usr/bin/perl
 1;
 #!/usr/bin/perl
 exit;
 #!/usr/bin/perl
 # A program without a body will work too

PHP

<?php ?>

PL/SQL

BEGIN
  NULL;
END;

PostScript

In general, the first 4 characters of the file have to be

%!PS

If a particular version of the PS interpreter is needed, this would be included right there:

%!PS-2.0
% ...or...
%!PS-3.0
% etc

Python

Interpreter: Python 2.4.3

For Python an empty text file is an empty program.

#!/usr/bin/env python

Actually that just tells the shell to run the python interpreter. Try this:

pass

Ruby

Interpreter: Ruby 1.8.5

#!/usr/bin/env ruby

Starting an Interactive RuBy shell

 irb

Tcl

Nothing is mandatory in Tcl, so an empty file named nothing.tcl would be a valid "empty program".

UNIX Shell

Interpreter: bourne SHell

#!/bin/sh

Interpreter: Bourne Again SHell

#!/bin/bash

Visual Basic .NET

Compiler: Visual Basic .NET 2005

Module General
    Sub Main()
    End Sub
End Module

xTalk

Interpreter: HyperCard

on startup
  
end startup

eSQL

CREATE COMPUTE MODULE ESQL_Compute
 CREATE FUNCTION Main() RETURNS BOOLEAN
 BEGIN
   RETURN TRUE;
 END;
END MODULE;

Markup Languages

LaTeX

Compiler: pdfeTeXk, Version 3.141592-1.30.4-2.2 (Web2C 7.5.5), LaTeX2e (2003/12/01)

\documentclass{article}
\begin{document}
\end{document}