Skip to content

Commit

Permalink
lineage files! and script to transform them in .dot
Browse files Browse the repository at this point in the history
  • Loading branch information
aryx committed Mar 15, 2018
1 parent 7048837 commit f7bbe3a
Show file tree
Hide file tree
Showing 16 changed files with 3,517 additions and 0 deletions.
263 changes: 263 additions & 0 deletions assemblers/lineage.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,263 @@
# -*- sh -*-
# See http://rigaux.org/language-study/diagram.html for the format of this file

#--------------------------------------------------------------------------
# Assemblers lineage (x86 assemblers mostly)
#--------------------------------------------------------------------------

#src: https://en.wikipedia.org/wiki/Comparison_of_assemblers
#src: wikipedia articles on different programs
# at least the ones listed in the box at
# https://en.wikipedia.org/wiki/Template:X86_assembly_topics
#src: infoworld magazine ads found via Google

#part of a compiler suite:
# - as/ld/cc (but actually there was an 'as' long before a 'cc' and even 'ld')
# - 5a/5l/5cc
# - gas/GNU ld/gcc
# - llvm-mc/lld/llvm-clang
# - asxxxx/aslink/sdcc (but independent originally of sdcc)
# - as86/ld86/bcc
# - em_ass/led/ack
# - MASM (?)/Linker?/C? (there was probably MASM long before C compiler)
# - TASM (?)/Turbo Linker/Turbo Pascal (but TASM long after?)
# - !!fbas/fbld??/fbcc!! (not in diagram)

#part of native-targeted:
# - Go/2a/5a/... (5l)
# - Free Pascal?
# - SBCL?

#--------------------------------------------------------------------------
# Pre-Historical (DEC)
#--------------------------------------------------------------------------

#IBM 701 first symbolic assembler?
# 1952
#src: https://researcher.watson.ibm.com/researcher/view_page.php?id=7209
# by Nathaniel Rochester

#A-0 first assembler/linker?
# 1952
#src: https://en.wikipedia.org/wiki/A-0_System

#Tons of assemblers already in 1957
#src:http://shape-of-code.coding-guidelines.com/2017/05/21/evidence-for-28-possible-compilers-in-1957/
# they use 'assembler' for 'linker/loader', and 'compiler' for 'assembler' :)


PAL11R
1971
#DEC-provided assembler for PDP11
#manual: https://archive.org/details/bitsavers_decpdp11do11RAssemblerProgrammersManualMay71_2572677
MACRO-11
1975

#--------------------------------------------------------------------------
# Historical (UNIX)
#--------------------------------------------------------------------------

# Ken thompson had a PDP-7 assembler (without any linker, and generated a.out)

*as
1971
PAL11R
SY:2
#as UNIX v1
#...
#as UNIX v7 (still in assembly)

#--------------------------------------------------------------------------
# Open source (GNU)
#--------------------------------------------------------------------------

*gas
as
1986
SY:2
gas 2.0
1993
# use BFD and started ELF support

*as86
1991
SY:2
#date: copyright in informagic/bin86/.../as.c says 1992, but I've found some
# as86 binaries dating back to 1991, and some of its files dates back to 1989
# wikipedia article comparing assemblers says 88


*ASxxxx
1989
#date: see copyright
#src: http://web.mit.edu/~6.121j/arch/i386_rhel4/versions/sdcc/2.5.0/share/sdcc/doc/aslink/asxhtm.html
# says derived from DECUS from PDP11 assembler :)
# part of SDCC now
PAL11R
ASxxxx 1.5
1990
#src: http://www.ibiblio.org/pub/academic/computer-science/history/pdp-11/decus/110918.html
ASxxxx 2.0
1998
#src: http://web.mit.edu/~6.121j/arch/i386_rhel4/versions/sdcc/2.5.0/share/sdcc/doc/aslink/asxhtm.html
ASxxxx 5.10
2014

sdas
ASxxxx
# sdcc's assembler

ASMXXX
ASxxxx 5.10
# on github

#--------------------------------------------------------------------------
# Plan9
#--------------------------------------------------------------------------

*2a/5a/8a/...
1993
as
SY:1
# there was no 5a yet in 1993 (there was 2a/6a/8a/ka/va/za)
Inferno assemblers
1996
# mostly unchanged I think (contains also an asm/ written in Limbo)
*Go assemblers
2009
# originally still in C, but rewritten in Go in 2016?


5a in OCaml
2015
2a/5a/8a/...

#--------------------------------------------------------------------------
# Educational
#--------------------------------------------------------------------------

*mixal
1968
# not really an assembler at that time, mixal by ESR first is 1998
*mmixal
1999
SY:2
#GNU mdk
# 2002

fbas
1996
# from fbcc

s86
1993
# from subc

*yasp
2013
# web-based with IDE and debugger, great for teaching

spim
1990
#date: see copyright
#weird mix assembler/simulator

pep/8 assembler

#--------------------------------------------------------------------------
# Post-2000
#--------------------------------------------------------------------------

*LLVM-mc
2010
SY:2

*WebAssembly
2017

#--------------------------------------------------------------------------
# Industry (mostly x86)
#--------------------------------------------------------------------------

# Intel provided assembler? mother of all?

A86
1980
SY:6
#date: shareware, not exact date
A386
1995
SY:6
#date: not exact date


*MASM
1981
SY:6
#Visual Studio
# 19??

*TASM
1989
MASM
SY:6
#date: ad in infoworld Sep12 1988 though, but wikipedia says 1989
# it followed Turbo Pascal/Prolog/C, not the reverse.

*WASM
1991
MASM
SY:6
# Watcom


MPW assembler
# Mac? Programmer's workbench


*ACK em_ass
1987
SY:6
ACK em_ass open source
2003


#--------------------------------------------------------------------------
# Other
#--------------------------------------------------------------------------

*NASM
1996
MASM,TASM
SY:2

*YASM
2002
NASM
# history provided here: http://yasm.tortall.net/Download.html
# modular assembler (can be used as a library by compilers), retargatable

*FASM
2000
NASM
# has IDE

*vasm
2002
gas

#--------------------------------------------------------------------------
# Exotic
#--------------------------------------------------------------------------
ARB Assembly language
# for openGL, shader, ancestor of GLSL

HLA

#--------------------------------------------------------------------------
# TODO?
#--------------------------------------------------------------------------

GoAsm
2001
# not related to golang
Loading

0 comments on commit f7bbe3a

Please sign in to comment.