“Bonjour le monde!” programme

0

Un “Bonjour, monde!” programme est généralement un programme informatique qui sort ou affiche le message “Hello, world!”. Ce programme est très simple à écrire dans de nombreux langages de programmation et est souvent utilisé pour illustrer la syntaxe de base d’un langage . “Bonjour le monde!” les programmes sont souvent les premiers qu’un étudiant apprend à écrire dans une langue donnée, [1] et ils peuvent également être utilisés comme un Test de santé mentale pour s’assurer que le logiciel informatique destiné à compiler ou exécuter le code source est correctement installé, et que son opérateur comprend comment utilise le.

Histoire

“Bonjour le monde!” programme de Brian Kernighan (1978)

Alors que de petits programmes de test existent depuis le développement des ordinateurs programmables , la tradition d’utiliser l’expression “Hello, World!” comme message de test a été influencé par un exemple de programme dans le livre de 1978 The C Programming Language . [2] , mais il n’y a aucune preuve que ‘hello world’ soit originaire de là, et il est très probable qu’il ait été utilisé auparavant dans BCPL (comme ci-dessous). L’exemple de programme dans ce livre imprime “Bonjour le monde”, et a été hérité d’un mémorandum interne de Bell Laboratories de 1974 par Brian Kernighan , Programming in C: A Tutorial : [3]

principal ( ) { printf ( “bonjour, monde” ); }

Dans l’exemple ci-dessus, leprincipale( ) La fonction définit où le programme doit commencer à s’exécuter . Le corps de la fonction consiste en une seule instruction , un appel à laprintffonction, qui signifie ” print formatted”. Cette fonction fera en sorte que le programme affiche tout ce qui lui est passé en tant que paramètre , dans ce cas la chaîne Bonjour le monde.

La version en langage C a été précédée par le propre 1972 A Tutorial Introduction to the Language B de Kernighan , [4] où la première version connue du programme se trouve dans un exemple utilisé pour illustrer des variables externes :

principal ( ) { externe a , b , c ; putchar ( un ); putchar ( b ); putchar ( c ); putchar ( ‘ !* n ‘ ); } un « enfer » ; b ‘ o , w ‘ ; c ‘ monde ‘ ;

Le programme imprime égalementBonjour le monde!sur le terminal, y compris un caractère de saut de ligne . La phrase est divisée en plusieurs variables car en B, une constante de caractère est limitée à quatre caractères ASCII . L’exemple précédent dans le didacticiel imprimésalut!sur le terminal, et la phraseBonjour le monde!a été introduit comme un message d’accueil légèrement plus long qui nécessitait plusieurs constantes de caractères pour son expression.

Le fichier Jargon affirme que “Hello, World!” provient plutôt de BCPL (1967). [5] Cette affirmation est censée être étayée par les notes archivées des inventeurs de BCPL, Christopher Strachey ( CPL (langage de programmation) ) et Martin Richards à Cambridge . L’expression a précédé de plus d’une décennie son utilisation en informatique; dès les années 1950, c’était le slogan du radio disc-jockey William B. Williams . [6]

Variantes

Un “Bonjour, monde!” programme fonctionnant sur la PlayStation Portable de Sony comme preuve de concept

“Bonjour le monde!” les programmes varient en complexité entre les différentes langues. Dans certains langages, en particulier les langages de script , le “Hello, World!” programme peut être écrit en une seule instruction, tandis que dans d’autres (en particulier de nombreux langages de bas niveau ), il peut y avoir beaucoup plus d’instructions requises. Par exemple, en Python , pour imprimer la chaîneBonjour le monde!suivi d’une nouvelle ligne, il suffit d’écrire . En revanche, le code équivalent en C++ [7] nécessite l’importation de la bibliothèque logicielle d’ entrée/sortie , la déclaration manuelle d’un point d’entrée et l’instruction explicite que la chaîne de sortie doit être envoyée au flux de Sortie standard . Généralement, les langages de programmation qui donnent au programmeur plus de contrôle sur la machine se traduiront par des programmes “Hello, World” plus complexes. [8]print(“Hello, World!”)

L’expression “Hello World!” a vu diverses déviations dans la ponctuation et la casse, telles que la présence de la virgule et du point d’exclamation, et la capitalisation du H et du W . Certains appareils limitent le format à des variations spécifiques, telles que les versions entièrement en majuscules sur les systèmes qui ne prennent en charge que les lettres majuscules, tandis que certains langages de programmation ésotériques peuvent avoir à imprimer une chaîne légèrement modifiée. Par exemple, le premier programme Malbolge non trivial a imprimé “Hello world”, cela ayant été déterminé comme étant assez bon . [9] D’autres langages humains ont été utilisés comme sortie ; par exemple, un tutoriel pour le langage de programmation Goproduit à la fois des caractères anglais et chinois ou japonais, démontrant la prise en charge Unicode intégrée du langage de programmation . [dix]

Un “Bonjour, Monde!” message affiché par light painting à longue exposition avec une bande mobile de LED

Certaines langues modifient la fonctionnalité de “Hello, World!” programme tout en gardant l’esprit de démonstration d’un exemple simple. Les langages de programmation fonctionnels , tels que Lisp , ML et Haskell , ont tendance à substituer un programme factoriel à “Hello, World!”, car la programmation fonctionnelle met l’accent sur les techniques récursives, alors que les exemples originaux mettent l’accent sur les E/S, ce qui viole l’esprit de la pure fonctionnalité. programmation en produisant des effets secondaires . Langues autrement capables d’imprimer “Hello, World!” (Assembly, C, VHDL ) peut également être utilisé dans les systèmes embarqués, où la sortie de texte est difficile (nécessitant des composants supplémentaires ou une communication avec un autre ordinateur) ou inexistante. Pour les appareils tels que les microcontrôleurs , les Matrices de portes programmables sur site et les CPLD , “Hello, World!” peut donc être remplacé par une LED clignotante , qui démontre la synchronisation et l’interaction entre les composants. [11] [12] [13] [14] [15]

Les distributions Debian et Ubuntu Linux fournissent le “Hello, World!” programme via leurs systèmes de gestion de packages logiciels , qui peuvent être invoqués avec la commandesalut. Il sert de contrôle d’intégrité et d’exemple simple d’installation d’un progiciel. Pour les développeurs, il fournit un exemple de création d’un paquet .deb , soit traditionnellement, soit en utilisant debhelper , et la version desalututilisé, GNU Hello , sert d’exemple d’écriture d’un programme GNU . [16]

Des variantes du “Hello, World!” programmes qui produisent une sortie graphique (par opposition à une sortie texte) ont également été présentés. Sun a démontré un “Hello, World!” programme en Java basé sur des graphiques vectoriels évolutifs , [17] et le langage de programmation XL présente une rotation de la Terre “Hello, World!” à l’ aide de l’infographie 3D . [18] Mark Guzdial et Elliot Soloway ont suggéré que le message de test “hello, world” pourrait être obsolète maintenant que les graphiques et le son peuvent être manipulés aussi facilement que le texte. [19]

Il est temps de saluer le monde

“Time to hello world” (TTHW) est le temps qu’il faut pour créer un “Hello, World!” programme dans un langage de programmation donné. C’est une mesure de la facilité d’utilisation d’un langage de programmation ; puisque le programme est conçu comme une introduction pour les personnes peu familières avec la langue, un “Hello, World!” programme peut indiquer que le langage de programmation est moins accessible. [8] Le concept a été étendu au-delà des langages de programmation aux API , pour mesurer à quel point il est simple pour un nouveau développeur de faire fonctionner un exemple de base ; un temps plus court indique une API plus facile à adopter pour les développeurs. [20] [21]

Exemples

Ballerine

importer ballerine/io ; fonction publique main() { io:println(“Bonjour, le monde!”); }

BASIQUE

10 IMPRIMER “Hello, World!”

Fichier de commandes

@ echo off echo Bonjour, Monde!

Frapper

echo “Bonjour, le monde!”

C

#include <stdio.h> int principal () { printf ( “Bonjour, tout le monde ! n ” ); retourne 0 ; }

C++

#include <iostream> int principal () { std :: cout << “Hello, World! n ” ; retourne 0 ; }

Version C++23 : [22]

#inclure <format> int principal () { std :: print ( “Hello, World!” ); retourne 0 ; }

C#

Console . WriteLine ( “Bonjour, le monde!” );

COBOL

DIVISION IDENTIFICATION . ID-PROGRAMME . BONJOUR-MONDE . * programme hello world simple PROCEDURE DIVISION . AFFICHAGE ‘Hello, World!’ . ARRÊTER DE COURIR .

Clojure

( println “Hello, World!” )

importer std . stdio ; vide principal () { writeln ( “Bonjour, le monde !” ) ; }

Dard

void main () { print ( ‘Hello, World!’ ); }

Élixir

IO . met ( “Hello, World!” )

Ezhil

” Bonjour , tout le monde !” sortie ()

Fortran

programme Hello print * , “Hello, World!” fin du programme Bonjour

Aller

importation principale du paquet “fmt” func main () { fmt . Println ( “Bonjour, le monde !” ) }

Haskell

main :: IO () main = putStrLn “Hello, World!”

Hy

( imprimez “Hello, World!” )

Java

public class Main { public static void main ( String [] args ) { System . dehors . println ( “Bonjour, le monde!” ); } }

Javascript

Pour la console du navigateur :

consoler . log ( “Hello, World!” );

Pour le document HTML :

documenter . écrire ( “Hello, World!” );

Julia

println ( “Bonjour, le monde !” )

Kotlin

fun main () { println ( “Hello, World!” ) }

Logo

imprimer [Hello, World!]

Lua

impression ( “Hello, World!” )

mq

fonction bonjour ( r ) { r . return ( 200 , “Hello, World!” ); } exporter par défaut { bonjour } ;

Objectif c

#import <Fondation/Fondation.h> int main ( int argc , const char * argv []) { @autoreleasepool { NSLog ( @ “Hello, World!” ); } retourne 0 ; }

OCamlComment

print_endline “Bonjour, le monde !”

Pascal

programme Bonjour ; begin writeln ( ‘Hello, World!’ ) ; fin .

perle

print “Hello, World!n” ;

PHP

<?php echo ‘Hello, World!’ ; ?>

Si vous utilisez uniquement PHP :

<?php echo ‘Bonjour, monde !’ ;

Utilisation de la fonction en PHP :

<?php function helloWorld () { return “Hello, World!” ; } ?>

PowerShell

‘Bonjour le monde!’

Prologue

main () :- écrivez ( “Hello, World!” ), nl .

Python

impression ( “Hello, World!” )

Raquette

#lang cli ( displayln “Hello, World!” )

Rubis

met “Hello, World!”

Rouiller

fn principal () { imprimez ! ( “Bonjour, le monde !” ) ; }

ML standard

print “Hello, World ! n ”

Rapide

impression ( “Hello, World!” )

TCL

met “Bonjour, monde!”

TI-BASIC

: Disp “HELLO, MONDE !”

Format de texte WebAssembly

En important “console.log” depuis Javascript

( module ( import “console” “log” ( func $log ( param i32 ) ( param i32 ))) ( import “js” “mem” ( mémoire 1 )) ( data ( i32.const 0 ) “Hello World” ) ;; chaîne écrite dans la mémoire globale ( func ( export “helloWorld” ) i32.const 0 i32.const 11 call $log ) )

Ce qui précède peut être compilé dans un fichier .wasm et utilisé en Javascript :

function consoleLogString ( offset , length ) { var bytes = new Uint8Array ( memory . buffer , offset , length ); var chaîne = nouveau TextDecoder ( ‘utf8’ ). décoder ( octets ); consoler . journal ( chaîne ); } var mémoire = WebAssembly . Mémoire ({ initiale : 1 }); var importObject = { console : { log : consoleLogString }, js : { mem : memory } }; WebAssembly . instantiateStreaming ( fetch ( “log.wasm” ), importObject ) . then ( obj => { obj . instance . exports . helloWorld (); });

Zig

const std = @import ( “std” ); pub fn principal () void { std . débogage . print ( “Hello, World!” , .{}); }

Voir également

  • icon iconPortail de programmation informatique

Références

  1. ^ James A Langbridge (3 décembre 2013). Développement ARM embarqué professionnel . ISBN 9781118887820.
  2. ^ Kernighan, Brian W. ; En ligneRitchie, Dennis M. (1978). Le langage de programmation C (1ère éd.). Englewood Cliffs, New Jersey : Prentice Hall . ISBN 0-13-110163-3.
  3. ^ Kernighan, Brian (1974). “Programmation en C: un tutoriel” (PDF) . Bell Labs . Récupéré le 9 janvier 2019 .
  4. ^ “Le langage de programmation B” . Bell Labs.
  5. ^ “BCPL” . Fichier Jargon .
  6. ^ “William B. Williams, personnalité de la radio, meurt” . Le New York Times . 4 août 1986.
  7. ^ “Programmation C++/Exemples/Bonjour le monde” . Wikilivres . Récupéré le 16 mars 2022 .
  8. ^ un b O’Dwyer, Arthur (septembre 2017). Maîtriser la STL C++17 : utiliser pleinement les composants de la bibliothèque standard en C++17 . Packt Publishing Ltd . p. 251. ISBN 978-1-78728-823-2. Récupéré le 4 décembre 2019 .
  9. ^ “Malbolge” . Esolang . esolangs-wiki . Récupéré le 28 octobre 2016 .
  10. ^ Un tutoriel pour le langage de programmation Go. Archivé le 26 juillet 2010 sur la Wayback Machine Le langage de programmation Go. Récupéré le 26 juillet 2011.
  11. ^ Silva, Mike (11 septembre 2013). “Introduction aux microcontrôleurs – Hello World” . EmbeddedRelated.com . Récupéré le 19 mai 2015 .
  12. ^ George, Ligo (8 mai 2013). “LED clignotante avec le microcontrôleur Atmega32 et Atmel Studio” . électroSome . Récupéré le 19 mai 2015 .
  13. ^ PT, Ranjeeth. “2. Microcontrôleurs AVR dans Linux HOWTO” . Le projet de documentation Linux . Récupéré le 19 mai 2015 .
  14. ^ Andersson, Sven-Åke (2 avril 2012). “3.2 La première conception Altera FPGA” . Raidió Teilifís Éireann. Archivé de l’original le 21 mai 2015 . Récupéré le 19 mai 2015 .
  15. ^ Fabio, Adam (6 avril 2014). “Tutoriel CPLD : Apprenez la logique programmable en toute simplicité” . Hackaday . Récupéré le 19 mai 2015 .
  16. ^ “Bonjour – Projet GNU – Free Software Foundation” . gnu.org . Projet GNU. Archivé de l’original le 29 mai 2014 . Récupéré le 7 juillet 2017 .
  17. ^ Jolif, Christophe (janvier 2003). “Apporter la puissance SVG aux applications Java”. Réseau de développeurs Sun .
  18. ^ de Dinechin, Christophe (24 juillet 2010). “Bonjour le monde!” . Grenouille Bouillie.
  19. ^ “Enseigner à la génération Nintendo à programmer” (PDF) . bfoit.org . Archivé de l’original (PDF) le 5 mai 2016 . Récupéré le 27 décembre 2015 .
  20. ^ Wiegers, Harold (28 juin 2018). “L’importance de “Time to First Hello, World!” un programme API efficace” .
  21. ^ Jin, Brenda; Sahni, Saurabh ; Chevat, Amir (29 août 2018). Concevoir des API Web : Créer des API que les développeurs adorent . O’Reilly Media. ISBN 9781492026877. Récupéré le 19 février 2020 .
  22. ^ “P2093R11 : sortie formatée” . open-std.org . Récupéré le 17 janvier 2022 .

Liens externes

Wikimedia Commons a des médias liés à Hello World .
Le Wikibook Computer Programming a une page sur le thème : Hello world
  • Rosler, Wolfram. “Bonjour World Collection” . helloworldcollection.de .
  • “Bonjour le monde/Texte” . Code Rosette .
  • “GitHub – leachim6/hello-world : Bonjour le monde dans tous les langages informatiques. Merci à tous ceux qui y contribuent, assurez-vous de consulter CONTRIBUTING.md pour les instructions de contribution !” . GitHub . 30 octobre 2021.
  • “Héros méconnus de l’informatique / Première partie : Brian Kernighan” . TheUnsungHeroesOfIT.com . Archivé de l’original le 26 mars 2016 . Récupéré le 23 août 2014 .
You might also like
Leave A Reply

Your email address will not be published.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More