Liste von Hallo-Welt-Programmen/Sonstige

Liste von Hallo-Welt-Programmen/Sonstige

Dies ist eine Liste von Hallo-Welt-Programmen für grafische Benutzeroberflächen, Web-Technologien, exotische Programmiersprachen und Textauszeichnungssprachen. Weitere Beispiele für gebräuchliche Programmiersprachen sind unter Liste von Hallo-Welt-Programmen/Programmiersprachen aufgeführt.

Inhaltsverzeichnis

Grafische Benutzeroberflächen – als traditionelle Anwendungen

4th Dimension

Alert("Hallo Welt")

AppleScript

display dialog "Hallo Welt!"

Autohotkey

gui, font, s20 
Gui, Add, Text,cgreen center, Hallo Welt! 
Gui, Add, Button, x65 default, OK  
Gui, Show,W200 H150, Hallo Welt Beispiel 
return  
GuiClose:
ButtonOK:
ExitApp

AutoIt

;AutoIt 3.X
MsgBox(0, "", "Hallo Welt!")

BlitzBasic

Ohne GUI:

Graphics 800,600
SetBuffer BackBuffer();
Text 10, 10, "Hallo Welt"
Flip
WaitKey()
End

Mit GUI (BlitzPlus)

window = CreateWindow("Hallo Welt! Fenster", 0, 0, 100, 80, 0, 1)
label = CreateLabel("Hallo Welt!", 5, 5, 80, 20, window)
Repeat
Until WaitEvent(1)=$803

C mit GTK

/*
 * Kompilieren mit "gcc hello_world.c -o hello_world `pkg-config --cflags --libs gtk+-2.0`".
 * (Falls die Datei unter dem Namen "hello_world.c" gespeichert wurde.)
 */
#include <gtk/gtk.h>
 
gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) {
  return FALSE;
}
 
void destroy(GtkWidget *widget, gpointer data) {
  gtk_main_quit();
}
 
void clicked(GtkWidget *widget, gpointer data) {
  g_print("Hallo Welt!\n");
}
 
int main (int argc, char *argv[]) {
  gtk_init(&argc, &argv);
 
  GtkWidget *window;
  GtkWidget *button;
 
  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_container_set_border_width(GTK_CONTAINER(window), 10);
  g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK(delete_event), NULL);
  g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(destroy), NULL);
 
  button = gtk_button_new_with_label("Hallo Welt!");
  g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(clicked), NULL);
  gtk_widget_show(button);
 
  gtk_container_add(GTK_CONTAINER(window), button);
  gtk_widget_show(window);
 
  gtk_main();
  return 0;
}

C#

using System;
using System.Drawing;
using System.Windows.Forms;
 
class HelloWorldForm : Form 
{
    public static void Main()
    {
        Application.Run(new HelloWorldForm());
    }
 
    public HelloWorldForm()
    {
       Label label = new Label();
       label.Text = "Hallo Welt!";
       label.Location = new Point(40, 30);
       Controls.Add(label);
       Button button = new Button();
       button.Text = "OK";
       button.Location = new Point(50, 55);
       Controls.Add(button);
       button.Click += new EventHandler(OnButtonOk);
    }
 
    void OnButtonOk(Object sender, EventArgs e)
    {
        this.Close();
    }
}

oder mit Hilfe der statischen Klasse MessageBox:

public class HelloWorld
{
    static void Main()
    {
        System.Windows.Forms.MessageBox.Show("Hallo Welt!");
    }
}

C++ mit gtkmm

// Kompilieren mit g++ hello_world.cpp -o hello_world `pkg-config --cflags --libs gtkmm-2.4`
// (Falls die Datei unter dem Namen "hello_world.cpp" gespeichert wurde.)
 
#include <gtkmm/main.h>
#include <gtkmm/button.h>
#include <gtkmm/window.h>
 
int main (int argc, char* argv[])
{
    Gtk::Main m_main(argc, argv);
    Gtk::Window m_window;
    Gtk::Button m_button("Hallo Welt!");
 
    m_window.add(m_button);
    m_button.show();
 
    Gtk::Main::run(m_window);
 
    return 0;
}

C++ mit Qt

// Kompilieren mit g++ hello_world.cpp -o hello_world `pkg-config --cflags --libs QtGui`
// (Falls die Datei unter dem Namen "hello_world.cpp" gespeichert wurde.)
 
#include <QLabel>
#include <QApplication>
 
int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
 
    QLabel label("Hallo Welt!");
    label.show();
 
    return app.exec();
}

Clarion

   program
    
   window WINDOW('Hallo Welt'),AT(,,300,200),STATUS,SYSTEM,GRAY,DOUBLE,AUTO
          END
    
   code        
    
   open(window)
   show(10,10,'Hallo Welt!')
   accept
   end
   close(window)

Delphi

program HalloWelt;
 
uses Dialogs;
 
begin
  ShowMessage('Hallo Welt!');
end.

EASY

in der Variante VDP:

   module helloworld
   procedure Main
     Message("Hallo Welt!")
   endproc

Gambas

   PUBLIC SUB Form_Enter()
   PRINT "Hallo Welt!"
   END

J#

   import System.Windows.Forms.MessageBox;
   
   public class HalloWelt
   {
       public static void main(String[] args)
       {
           MessageBox.Show("Hallo Welt!");
       }
   }

oder

   import System.Drawing.*;
   import System.Windows.Forms.*;
   
   public class HalloWelt
   {
       public static void main(String[] args)
       {
           Application.Run( new HalloWeltFenster() );
       }
   }
   
   public class HalloWeltFenster extends Form
   {
       public HalloWeltFenster()
       {
           this.set_ClientSize( new Size(144, 40) );
           this.set_Text("Hallo Welt!");
   
           Button Button_HelloWorld = new Button();
           Button_HelloWorld.set_Name("Button_HelloWorld");
           Button_HelloWorld.set_Location(new Point(8, 8));
           Button_HelloWorld.set_Size(new Size(128, 24));
           Button_HelloWorld.set_Text(""Hallo Welt!"");
           Button_HelloWorld.add_Click(new System.EventHandler(this.Button_HelloWorld_Click));
   
           this.get_Controls().Add(Button_HelloWorld);
       }
   
       private void Button_HelloWorld_Click(Object sender, System.EventArgs e)
       {
           MessageBox.Show("Hallo Welt!");
       }
   }

Java

import java.awt.Frame;
import java.awt.Label;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
 
public class HalloWeltFenster extends Frame {
 
    public HalloWeltFenster() {
        super("Hallo Welt!");
        Label halloWeltLabel = new Label("Hallo Welt!");
        add(halloWeltLabel);
 
        addWindowListener(new WindowAdapter()) {
             public void windowClosing(WindowEvent e) {
                 System.exit(0);
             }
        });
 
        setResizable(false);
        setLocation(350, 320);
        setSize(160, 60);
        setVisible(true);
    }
 
    public static void main(String[] args) {
        new HalloWeltFenster();
    }
}
import javax.swing.JOptionPane;
 
public class HelloWorld {
 
	public static void main(String[] args) {
		JOptionPane.showMessageDialog(null, "Hallo Welt!");
	}
}
import javax.swing.JFrame;
import javax.swing.JLabel;
 
public class HelloWorld extends JFrame {
 
    JLabel halloWeltLabel;
    public HelloWorld() {
        setTitle("Hallo Welt!");
        setLocation(350, 320);
        setSize(160, 60);
        halloWeltLabel = new JLabel("Hallo Welt!");
        getContentPane().add(halloWeltLabel);
 
        setDefaultCloseOperation(EXIT_ON_CLOSE);
 
        setResizable(false);
        setVisible(true);
    }
 
    public static void main(String[] args) {
        new HelloWorld();
    }
}
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
 
public class HelloWorld {
 
    public static void main(String[] args) {
        Display display = new Display();
        Shell shell = new Shell(display);
 
        shell.open();
        shell.setText("Hallo Welt!");
 
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
 
        display.dispose();
    }
}

LabVIEW

Bild:LabVIEW_HalloWelt.png

Lingo

In das Message-Fenster:

   on startMovie
     
     put "Hallo Welt!"
     
   end startMovie

In ein Dialogfenster:

   on startMovie
     
     alert "Hallo Welt!"
     
   end startMovie

In ein gestaltbares Dialogfenster mittels MUI Xtra:

   on startMovie
     
     set alertObj = new(xtra "MUI")
     
     set alertInitList = [ \
         #buttons : #Ok, \
         #default : 1, \
         #icon    : #note, \
         #message : "Hallo Welt!", \
         #movable : TRUE, \
         #title   : ""]
     
     if objectP(alertObj) then
       
       set result = alert(alertObj, alertInitList)
       
       case result of
         1 : -- the user clicked OK
         otherwise : -- the user hit ESC
       end case
       
     end if
     
   end startMovie

LISP

(alert "Hallo Welt!")


Objective-C mit Cocoa

#import <Cocoa/Cocoa.h>
 
@interface Controller : NSObject
{
	NSWindow *window;
	NSTextField *textField;
}
 
@end
 
int main(int argc, const char *argv[])
{
	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
	NSApp = [NSApplication sharedApplication];
	Controller *controller = [[Controller alloc] init];
	[NSApp run];
	[controller release];
	[NSApp release];
	[pool release];
 
	return EXIT_SUCCESS;
}
 
@implementation Controller
 
- (id)init
{
	if ((self = [super init]) != nil) {
		textField = [[NSTextField alloc] initWithFrame:NSMakeRect(10.0, 10.0, 85.0, 20.0)];
		[textField setEditable:NO];
		[textField setStringValue:@"Hallo Welt!"];
 
		window = [[NSWindow alloc] initWithContentRect:NSMakeRect(100.0, 350.0, 200.0, 40.0)
											 styleMask:NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask
											   backing:NSBackingStoreBuffered
												 defer:YES];
		[window setDelegate:self];
		[window setTitle:@"Hallo Welt!"];
		[[window contentView] addSubview:textField];
		[window makeKeyAndOrderFront:nil];
	}
 
	return self;
}
 
- (void)windowWillClose:(NSNotification *)notification
{
	[NSApp terminate:self];
}
 
@end

Perl mit Tk

use Tk;
 
$init_win = new MainWindow;
 
$label = $init_win -> Label(
                            -text => "Hallo Welt!"
                            ) -> pack(
                                      -side => top
                                      );
$button = $init_win -> Button(
                              -text    => "Ok",
                              -command => sub {exit}
                              ) -> pack(
                                        -side => top
                                        );
 
MainLoop;

Profan² / XProfan

   Messagebox("Hallo Welt!","",0)

oder

   Print "Hallo Welt!"
   WaitKey
   End

oder

   shell getenv$("COMSPEC")+" /k @echo Hallo Welt!"

PureBasic

   MessageRequester("","Hallo Welt!")

Pure Data

Patch als ASCII-art

[hello world(
|
[print]

Python mit Tkinter

from Tkinter import *
from sys import exit
 
fenster = Tk()
Label(fenster, text="Hallo Welt!").pack()
Button(fenster, text="Beenden", command=exit).pack()
fenster.mainloop()

RapidBatch

rem RapidBatch 5.1
Echo 'Hallo Welt!'
End

REBOL

REBOL [
  Title: "Hallo Welt in einem Fenster"
  File: %hello-view.r
  Date: 12-January-2002
]

view layout [
   text "Hallo Welt!" 
   button "Beenden" [quit]
]

Ruby mit GTK+

require "gtk2"
 
Gtk::Window.new("Hallo Welt!").show_all.signal_connect(:delete_event){Gtk.main_quit}
Gtk.main

Ruby mit Tk

require "tk"
 
TkRoot.new{ title "Hallo Welt!" }
Tk.mainloop

Spec#

using System;
using System.Windows.Forms;
 
public class Program
{
    static void Main(string![]! args)
    requires forall{int i in (0:args.Length); args[i] != null};
    {
        MessageBox.Show("Hallo Welt!");
    }
}

SPL (SPL Programming Language) mit QT

  load "qt";
  var a = new qt.QApplication();
  var l = new qt.QLabel(undef);
  l.setText("Hallo Welt!");
  function click_callback(e) {
  debug "Click: ${e.x()} / ${e.y()}";
  return 1;
  }
  qt_event_callback(l, click_callback, qt.QEvent.MouseButtonPress());
  a.setMainWidget(l);
  l.show();
  a.exec();

TclTk

   label .label1 -text "Hallo Welt!"
   pack .label1

oder kürzer (unter Ausnutzung, dass das Label-Kommando den Namen zurückgibt):

   pack [label .label1 -text "Hallo Welt!"]

REALBasic

   MsgBox "Hallo Welt!"

Visual Basic

Public Sub Main()
    MsgBox "Hallo Welt!"
End Sub

Waba / SuperWaba

   import waba.ui.*;
   import waba.fx.*;
   
   public class HelloWorld extends MainWindow
   {
   
     public void onPaint(Graphics g)
     {
       g.setColor(0, 0, 0);
       g.drawText("Hallo Welt!", 0, 0);
     }
   }

Windows API (in C)

#include <windows.h>
 
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
  MessageBox(0, "Hallo Welt!", "Mein erstes Programm", MB_OK);
  return 0;
}

Oder mit eigenem Fenster und Eventhandler

#include <windows.h>
 
LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
 
char szClassName[] = "MainWnd";
HINSTANCE hInstance;
 
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
  HWND hwnd;
  MSG msg;
  WNDCLASSEX wincl;
 
  hInstance = hInst;
 
  wincl.cbSize = sizeof(WNDCLASSEX);
  wincl.cbClsExtra = 0;
  wincl.cbWndExtra = 0;
  wincl.style = 0;
  wincl.hInstance = hInstance;
  wincl.lpszClassName = szClassName;
  wincl.lpszMenuName = NULL; //No menu
  wincl.lpfnWndProc = WindowProcedure;
  wincl.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); //Color of the window
  wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION); //EXE icon
  wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION); //Small program icon
  wincl.hCursor = LoadCursor(NULL, IDC_ARROW); //Cursor
 
  if (!RegisterClassEx(&wincl))
        return 0;
 
  hwnd = CreateWindowEx(0, //No extended window styles
        szClassName, //Class name
        "", //Window caption
        WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX,
        CW_USEDEFAULT, CW_USEDEFAULT, //Let Windows decide the left and top positions of the window
        120, 50, //Width and height of the window,
        NULL, NULL, hInstance, NULL);
 
  //Make the window visible on the screen
  ShowWindow(hwnd, nCmdShow);
 
  //Run the message loop
  while (GetMessage(&msg, NULL, 0, 0))
  {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
  }
  return msg.wParam;
}
 
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  PAINTSTRUCT ps;
  HDC hdc;
  switch (message)
  {
  case WM_PAINT:
        hdc = BeginPaint(hwnd, &ps);
        TextOut(hdc, 15, 3, "Hallo Welt!", 13);
        EndPaint(hwnd, &ps);
        break;
  case WM_DESTROY:
        PostQuitMessage(0);
        break;
  default:
        return DefWindowProc(hwnd, message, wParam, lParam);
  }
  return 0;
}

X++

   static void HelloWorldJob(Args _args)
   {
       ;
       Box::info("Hallo Welt!");
   }

Xbase++

   function main() 
   msgbox( "Hallo Welt!", "Mein erstes Xbase++ Programm" )
   return .T.

Web-Technologien

ASP (Active Server Pages)

<%
  Response.Write("Hallo Welt!")
%>

oder verkürzt

<%="Hallo Welt!"%>

Coldfusion

    <cfoutput>Hallo Welt!</cfoutput>

Curl

   {curl 5.0 applet}
   Hallo Welt

haXe

class Test {
    static function main() {
        trace(„Hallo Welt!“);
    }
}

Die daraus compilierten SWF- oder Neko-Bytecodes sind allein lauffähig. Zur Verwendung von compiliertem Javascript zusätzlich nötig:

<html><body>
<div id=“haxe:trace“></div>
<script type=“text/javascript“ src=“hallo_welt_haxe.js“></script>
</body></html>

Java-Applet

Java-Applets funktionieren in Verbindung mit HTML.

Die Java-Datei:

import java.applet.*;
import java.awt.*;
 
public class HalloWelt extends Applet {
  public void paint(Graphics g) {
    g.drawString("Hallo Welt!", 100, 50);
  }
}

Nachfolgend der Code zum Einbau in eine HTML-Seite.

Vom W3C empfohlen:

<object classid="java:HalloWelt.class"
        codetype="application/java-vm"
        width="600" height="100">
</object>

Für Kompatibilität zu sehr alten Browsern (nicht empfohlen):

<applet code="HalloWelt.class"
        width="600" height="100">
</applet>

JavaScript

JavaScript ist eine Skriptsprache, die insbesondere in HTML-Dateien verwendet wird. Der nachfolgende Code kann in HTML-Quelltext eingebaut werden:

   <script type="text/javascript">
      alert("Hallo Welt!");
   </script>

Oder als direkte Ausgabe:

   <script type="text/javascript">
      document.write("Hallo Welt!");
   </script>

JSP (Java Server Pages)

   <%
     out.print("Hallo Welt!");
   %>

oder verkürzt

   <%="Hallo Welt!"%>

OpenLaszlo

<canvas>
   <text>Hella Welt!</text>
</canvas>

PHP

<?php
    echo "Hallo Welt!";
    // oder auch print 'Hallo Welt!';
    // oder auch print_r('Hallo Welt!');
    // oder auch var_dump('Hallo Welt!');
    // oder auch var_export('Hallo Welt!');
?>

oder, verkürzt:

<?="Hallo Welt!"?>

Silverlight

VB.NET:

       System.Console.WriteLine("Hallo Welt!")

Oder:

       Dim Textbox As New System.Windows.Controls.TextBlock
       Textbox.Text = "Hallo Welt!"
       Me.Children.Add(Textbox)

C#:

       System.Console.WriteLine("Hallo Welt!");

VBScript

   MsgBox "Hallo Welt!"

Visual Basic .NET

   Module Main
       Sub Main()
           System.Console.WriteLine("Hallo Welt!")
       End Sub
   End Module

XUL

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<label value="Hallo Welt!"/>
</window>

XAML

<?Mapping ClrNamespace="System" Assembly="mscorlib"
         xmlNamespace="http://www.gotdotnet.com/team/dbox/mscorlib/System" ?>
<Object xmlns="http://www.gotdotnet.com/team/dbox/mscorlib/System" 
         xmlns:def="Definition" def:Class="MyApp.Hello">
    <def:Code>
    <![CDATA[
     Shared Sub Main()
     '{
         System.Console.WriteLine("Hallo Welt!")' ;
     '}
     End Sub
    ]]>
    </def:Code>
</Object>

Exotische Programmiersprachen

(auch esoterisch genannt)

Befunge

"!tleW ollaH">,:v
             ^  _@

Oder:

"!tleW ollaH">:#,_@

Brainfuck

   ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>---.+++++++++++
   ..+++.>++.<<+++++++++++++++.++++++++++++++.>---.++++++++.>+.>.

Brainfuck2D

*                                          *0**************
 *                                        *                *
  *                                      *                  *
   *9*******************                *          *         *5***************
                       *               *          **                         *
                       *              *          * *                         *
                       *             *          *  *                         *
                       *            *          *   *                         *
                       *           **********0*    *                         *
                      *                            **********                *
                     *                                     *                 *
                    *                                     *                  *
                   *44****************************       *                   *
                                                  *     *                    *
                                                   *   *                     *
     ***********0*                                  * 0                      *
    *            *                          2**11    *                       *
   *             *                         *     0                           *
  *              *                        0       *                          *
 *               *           *****4*3*2*1*         *                        *
*               *           *                       *                      *
 0             *           *                         *                    *221*********
  *           *           *                           *                                *
   *         *           *                             *             *0****             *
    *       0           *                               *           *     *              *
     *     *****************************BRAINFUCK******************************************
      *               *                                   *       *       *
       *             *                                     *     *        *
        *           *                                 *     *0***         *
         *         *                                  **                  *
          *   *   *                                   * *                 *
           * * * *                                    *  *                *
            *   *                                     *********************
           * * * *                                         *
          *   *   *   *                                     *
         *         * * *                                     *8****************
        *           *   *                                                     *
       ***********0* *   * 0*1*1*2*1*1                                        *
                      *   *          *                *0******                *
                       * 0 *         *               *        *              *
                        *   0        *              *     *    *            *
                             *       *             *     **     *          *4*******
                             *       *            *     * *      *                  *
                             *       *           *     *  *       *                  *
                             *       *          *****0*   *****************************
                             *       *                              *
                             *       *                               *
                             *       *                                *
                             *      *                                  **2*2*2*2*2***
                             *     **1*****                                         *
                             *             *                                   *    *
                             *          *   *                                 *     *
                             *         **    *                               *      *
                             *        * *     *           *0**              *      *
                             *       *  *      *         *  0              *      *
                             *      *   *********       *  *              *      **2*2*
                             *     *                *242  *  *           *             *
                             *     0      *3*3*1****     *  * *         *               *
                             *     *     *              *  *   *       *                 *
                             **************************************************************
                                   *   *              *  *       *   *
                                   *  *    999991*   *  *         * *
                                   * *     0    *   *  *           *
                                   **      *   0   *  *           * *
                                   *       *  9999*  *           *****
                                           *        *
                                           *       *
                                            *     *
                                             *   *
                                              * *
                                               *
                                              * *22223
                                             *      *
                                            *      *
                                           *      *
                                          *      *
                                         ********

Chef

   Hallo Welt Souffle.
   
   Ingredients.
   72 g haricot beans
   97 anchovies
   108 g lard
   111 cups oil
   32 zucchinis
   87 ml water
   101 eggs
   116 g sliced tomatoes
   33 potatoes
   
   Method.
   Put potatoes into the mixing bowl. Put sliced tomatoes into the mixing bowl.
   Put lard into the mixing bowl. Put eggs into the mixing bowl. Put water into
   the mixing bowl. Put zucchinis into the mixing bowl. Put oil into the mixing
   bowl. Put lard into the mixing bowl. Put lard into the mixing bowl. Put
   anchovies into the mixing bowl. Put haricot beans into the mixing bowl.
   Liquify contents of the mixing bowl. Pour contents of the mixing bowl into
   the baking dish.
   
   Serves 1.

HQ9+

Zweck der Sprache ist vor allem das einfache Schreiben von Hallo-Welt-Programmen.

   H

INTERCAL

   PLEASE DO ,1 <- #13
   DO ,1 SUB #1 <- #238
   DO ,1 SUB #2 <- #112
   DO ,1 SUB #3 <- #112
   DO ,1 SUB #4 <- #0
   DO ,1 SUB #5 <- #64
   DO ,1 SUB #6 <- #238
   DO ,1 SUB #7 <- #26

   DO ,1 SUB #8 <- #248
   DO ,1 SUB #9 <- #168
   DO ,1 SUB #10 <- #24
   DO ,1 SUB #11 <- #16
   DO ,1 SUB #12 <- #158
   DO ,1 SUB #13 <- #52
   PLEASE READ OUT ,1
   PLEASE GIVE UP

Java2K

Da es sich bei Java2K um eine wahrscheinlichkeitstheoretische Sprache handelt, lässt sich auch nur zu einer gewissen Wahrscheinlichkeit ein "Hello World" schreiben.

  1 1 /125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2
  /*/_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2
  /*/_\/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
  _\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
  _\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
  _\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
  _\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
  _\/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\
  \\\\\\\/*\1 1 /125 /119 /11 6/*/_\/13 2/*/_\\/
  125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\
  /125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_
  \/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_
  \/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_
  \/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_
  \/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\
  \\\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\
  \\\\\\\/*\1 1 /125 /131 /119 /125 /11 6/*/_\/_\
  /125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\/
  125 /13 2/*/_\/_\\\/125 /131 /119 /125 /11 6/*/
  _\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/
  _\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\
  /125 /13 2/*/_\/_\\\\/125 /131 /119 /125 /11 6/
  */_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/
  */_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/
  */_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/
  */_\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/
  _\/125 /13 2/*/_\/_\\\\\\/131 /119 /125 /11 6/*
  /_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
  /_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
  /_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
  /_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
  /_\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_
  \/125 /13 2/*/_\/_\\\\\\\\\\/*\1 1 /125 /131 /
  119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/119 /
  125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\/125 /
  131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/
  131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/
  119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\\/
  125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\
  \\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\\
  \\\\\\/*\1 1 /125 /119 /11 6/*/_\/13 2/*/_\\/
  125 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/
  125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\
  /125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_
  \/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_
  \/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\
  \\/125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*
  /_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*
  /_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*
  /_\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*
  /_\/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_
  \\\\\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
  _\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
  _\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
  _\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
  _\/_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/
  _\/_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\
  \\\\\\\\\\\/*\1 1 /125 /131 /119 /125 /11 6/*/_
  \/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\/
  125 /13 2/*/_\/_\\\/125 /131 /119 /125 /11 6/*/
  _\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/
  _\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\
  /125 /13 2/*/_\/_\\\\/131 /119 /125 /11 6/*/_\/
  _\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\/
  _\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\/
  _\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\/
  _\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\/
  125 /13 2/*/_\/_\\\\\\\\/*\1 1 /131 /119 /125 /
  11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /
  11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /
  11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /
  11 6/*/_\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/
  */_\/_\/125 /13 2/*/_\/_\\\\\\/*\1 1 /125 /
  119 /11 6/*/_\/13 2/*/_\\/125 /119 /125 /11 6/*
  /_\/_\/125 /13 2/*/_\/_\\/125 /131 /119 /125 /
  11 6/*/_\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/
  */_\/_\/125 /13 2/*/_\/_\\\/125 /131 /119 /
  125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /
  125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /
  125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/119 /125 /
  11 6/*/_\/_\/125 /13 2/*/_\/_\\\\\/131 /119 /
  125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /
  125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /
  125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /
  125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/131 /119 /
  125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/119 /125 /
  11 6/*/_\/_\/125 /13 2/*/_\/_\\\\\\\\\\\/*\
  1 1 /125 /119 /11 6/*/_\/13 2/*/_\\/125 /119 /
  125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/125 /131 /
  119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/119 /
  125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\/125 /
  131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/
  131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/
  119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\\/
  125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\
  \\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\\
  \\\\\\\\/*\1 1 /125 /119 /125 /11 6/*/_\/_\/
  125 /13 2/*/_\/_\\/125 /131 /119 /125 /11 6/*/_
  \/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_
  \/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_
  \/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\/
  125 /13 2/*/_\/_\\\\\/125 /131 /119 /125 /11 6/
  */_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/
  */_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/
  */_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/
  */_\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/
  _\/125 /13 2/*/_\/_\\\\\\/131 /119 /125 /11 6/*
  /_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
  /_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
  /_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
  /_\/_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*
  /_\/_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_
  \/125 /13 2/*/_\/_\\\\\\\\\\/*\1 1 /125 /131 /
  119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/119 /
  125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\/125 /
  131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/
  131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\/
  119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\\/
  125 /131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\
  /_\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\
  \\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/131 /119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/
  _\\/119 /125 /11 6/*/_\/_\/125 /13 2/*/_\/_\\\\
  \\\\\\/*\1 1 /125 /131 /119 /125 /11 6/*/_\/_\/
  125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\/125 /
  13 2/*/_\/_\\\/125 /131 /119 /125 /11 6/*/_\/_\
  /125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\/_\
  /125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\/_\
  /125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\/_\
  /125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\/
  125 /13 2/*/_\/_\\\\\\/131 /119 /125 /11 6/*/_\
  /_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\
  /_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\
  /_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\
  /_\/125 /13 2/*/_\/_\\/131 /119 /125 /11 6/*/_\
  /_\/125 /13 2/*/_\/_\\/119 /125 /11 6/*/_\/_\/
  125 /13 2/*/_\/_\\\\\\\\\/*\342//3427/*_/\_


Malbolge

   (=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**hKs_dG5
   [m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O<

Ook!

   Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
   Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
   Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
   Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
   Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
   Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
   Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
   Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
   Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
   Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
   Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
   Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
   Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
   Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
   Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
   Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
   Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
   Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.

Piet

Bild:Piet Program Hello World(1).gif

Bei Piet ist der Quelltext eine Bilddatei im GIF-Format.

Unlambda

```s``sii`ki
 ``s``s`ks
     ``s``s`ks``s`k`s`kr
               ``s`k`si``s`k`s`k
                               `d````````````.H.e.l.l.o.,. .w.o.r.l.d.!
                        k
      k
  `k``s``s`ksk`k.*

[1]

Whitespace


Zombie

HelloWorld is a zombie
    summon
        task SayHello
            say "Hallo Welt!"
        animate
    animate

Textauszeichnungssprachen

Die folgenden Sprachen sind keine Programmiersprachen, sondern Textauszeichnungssprachen, also Sprachen, mit denen man einen im Computer gespeicherten Text für die Ausgabe auf dem Bildschirm oder mit dem Drucker formatieren kann. Analog zum Hallo-Welt-Programm ist ein Hallo-Welt-Dokument in einer dieser Sprachen ein Beispieldokument, das nur den Text "Hallo Welt!" enthält.

Graphviz

   digraph G {Hello->World}

Groff

   \f(CW 
   Hallo Welt

HTML

Ohne Tag-Auslassung

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>Hallo Welt!</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>Hallo Welt!</p>
  </body>
</html>

Mit Tag-Auslassung

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>Hallo Welt!</title>
<p>Hallo Welt!</p>

Die Auslassung bestimmter Tags (hier: <html>…</html>, <head>…</head>, <body>…</body>) ist bei HTML formal zulässig, wird jedoch selten benutzt. Bei XHTML ist dies aufgrund der XML-Konventionen nicht mehr möglich.

XHTML

<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Hallo Welt!</title>
</head>
<body>
    <p>Hallo Welt!</p>
</body>
</html>

LaTeX

\documentclass{article}
\begin{document}
Hallo Welt!
\end{document}

Alternativ (gibt Hallo Welt auf STDOUT aus, anstatt ein DVI-File damit zu erstellen):

\documentclass{article}
\begin{document}
\typeout{Hallo Welt!}
\end{document}

PostScript

   /Courier findfont
   24 scalefont
   setfont
   100 100 moveto
   (Hallo Welt!) show
   showpage

RTF

   {\rtf1\ansi\deff0
   {\fonttbl {\f0 Courier New;}}
   \f0\fs20 Hallo Welt!
   }

TeX

\leftline{Hallo Welt!}
\bye

Siehe auch

Weblinks

Einzelnachweise

  1. http://www.madore.org/~david/programs/unlambda/

Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Liste von Hallo-Welt-Programmen/Programmiersprachen — Dies ist eine Liste von Hallo Welt Programmen für gebräuchliche Programmiersprachen. Weitere Beispiele für grafische Benutzeroberflächen, Web Technologien, exotische Programmiersprachen und Textauszeichnungssprachen sind unter Liste von Hallo… …   Deutsch Wikipedia

  • Liste von Hallo-Welt-Programmen — Diese Listen sollen Beispiele für Hallo Welt Programme in verschiedenen Computersprachen geben: Beispiele für gebräuchliche Programmiersprachen sind unter Liste von Hallo Welt Programmen/Programmiersprachen aufgeführt. Für grafische… …   Deutsch Wikipedia

  • Liste der ARD-Sendungen — Logo der ARD Die Sendungen, die im Programm der ARD zu sehen sind, werden von den Landesrundfunkanstalten sowohl als Gemeinschafts als auch als Eigenproduktionen hergestellt. Die Sendungen sind im Gemeinschaftsprogramm Das Erste, den Dritten… …   Deutsch Wikipedia

  • Apple iPhone 2G — iPhone iPhone der 1. Generation im MP3 Player Modus Hersteller Apple Inc. Funkverbindungen …   Deutsch Wikipedia

  • Apple iPhone 3G — iPhone iPhone der 1. Generation im MP3 Player Modus Hersteller Apple Inc. Funkverbindungen …   Deutsch Wikipedia

  • Apple iphone — iPhone iPhone der 1. Generation im MP3 Player Modus Hersteller Apple Inc. Funkverbindungen …   Deutsch Wikipedia

  • IPhone — der 1. Generation im MP3 Player Modus Hersteller Apple Inc. Funkverbindungen …   Deutsch Wikipedia

  • IPhone 3G — iPhone iPhone der 1. Generation im MP3 Player Modus Hersteller Apple Inc. Funkverbindungen …   Deutsch Wikipedia

  • Iphone — der 1. Generation im MP3 Player Modus Hersteller Apple Inc. Funkverbindungen …   Deutsch Wikipedia

  • Jesusphone — iPhone iPhone der 1. Generation im MP3 Player Modus Hersteller Apple Inc. Funkverbindungen …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”