いろんな言語で “Hello World!” 〜1950年代

タイトル通り、いろんな言語でプログラミング入門のど定番、”Hello World!” をやってみる。

1.アセンブラ

環境:Alpine Linux 3.9 + yasm 1.3.0 or nasm 2.13.03 +  gcc 8.3.0 (Docker)

アセンブラは、就職にあたって、当時の情報処理技術者試験2種の勉強のためにCASLをやった程度。

[hello.asm]
section .text
  global _start

_start:
  mov  edx, len
  mov  ecx, msg
  mov  ebx, 1
  mov  eax, 4
  int  0x80

  mov  eax, 1
  int  0x80

  section .data
    msg  db  'Hello world!', 0xa
    len  equ  $ - msg

アセンブル→実行

# yasm -f elf64 hello.asm && ld -s -o hello hello.o
(または)
# nasm -f elf64 hello.asm && ld -s -o hello hello.o
# ./hello
Hello world!

2.COBOL

環境:Alpine Linux 3.9 + GnuCOBOL 3.0 +  Berkeley DB 5.3.28 + gmp 6.1.2(Docker)

000100 IDENTIFICATION   DIVISION.
000200 PROGRAM-ID.      HELLO.
000300 PROCEDURE        DIVISION.
000400     DISPLAY "HELLO, COBOL WORLD!".
000500     STOP RUN.
000600 END PROGRAM HELLO.

コンパイル→実行

# cobc -x hello.cbl
# ./hello
HELLO, COBOL WORLD!

COBOLって、行番号手書きなんやね・・・一応、cobc でコンパイルするときに、-free というオプションを付ければ、行番号なしでもOKらしい。

3.Fortran

環境:Alpine Linux 3.9 + gfortran 8.3.0(Docker)

program hello
  print *, 'Hello fortran World!'
end program hello

コンパイル→実行

# gfortran hello.f90
# ./a.out
Hello fortran World!

4.ALGOL 68

*ALGOL68を1950年代扱いにすると異論も出そうだが・・・大枠としてのALGOLの誕生が1958年なので。

環境:Alpine Linux 3.9 + Algol 68 Genie 2.8.4(Docker)

BEGIN
   printf(($gl$,"Hello, algol world!"))
END

実行

# a68g hello.alg
Hello, algol world!

5.LISP(Common Lisp)

*これも、Common Lispを(以下略)

環境:Alpine Linux 3.9 + roswell 19.4.10.98(Docker:frolvlad/alpine-glibc ベース)

* (format t "Hello World!~%")
Hello World!
NIL

 

コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA