\begin{tikzpicture}[node distance=1cm and 10cm] \node (c) { $C$ }; \node (cpp) [below of=c] { $C++$ }; \node (rust) [below of=cpp] { $Rust$ }; \node (Julia) [below of=rust] { $Julia$ }; \node (x86) [right=4cm of c] { $x86$ }; \node (arm) [below of=x86] { $ARM$ }; \node (mips) [below of=arm] { $MIPS$ }; \node (alpha) [below of=mips] { $Alpha$ }; \draw [arrow] (c) -- (x86); \draw [arrow] (c) -- (arm); \draw [arrow] (c) -- (mips); \draw [arrow] (c) -- (alpha); \draw [arrow] (cpp) -- (x86); \draw [arrow] (cpp) -- (arm); \draw [arrow] (cpp) -- (mips); \draw [arrow] (cpp) -- (alpha); \draw [arrow] (rust) -- (x86); \draw [arrow] (rust) -- (arm); \draw [arrow] (rust) -- (mips); \draw [arrow] (rust) -- (alpha); \draw [arrow] (Julia) -- (x86); \draw [arrow] (Julia) -- (arm); \draw [arrow] (Julia) -- (mips); \draw [arrow] (Julia) -- (alpha); \end{tikzpicture}
\begin{tikzpicture}[node distance=1cm and 10cm] \node (c) { $C$ }; \node (cpp) [below of=c] { $C++$ }; \node (rust) [below of=cpp] { $Rust$ }; \node (julia) [below of=rust] { $Julia$ }; \node (llvm) [right=2.5cm of c, below of=c] { LLVM IR }; \node (x86) [right=4.5cm of c] { $x86$ }; \node (arm) [below of=x86] { $ARM$ }; \node (mips) [below of=arm] { $MIPS$ }; \node (alpha) [below of=mips] { $Alpha$ }; \draw [arrow] (c) -- (llvm); \draw [arrow] (cpp) -- (llvm); \draw [arrow] (rust) -- (llvm); \draw [arrow] (julia) -- (llvm); \draw [arrow] (llvm) -- (x86); \draw [arrow] (llvm) -- (arm); \draw [arrow] (llvm) -- (mips); \draw [arrow] (llvm) -- (alpha); \end{tikzpicture}
\begin{tikzpicture}[node distance=1cm and 10cm] \node (java) { $Java$ }; \node (kotlin) [below of=java] { $Kotlin$ }; \node (scala) [below of=kotlin] { $Scala$ }; \node (closure) [below of=scala] { $Closure$ }; \node (x86) [right=4cm of java] { $x86$ }; \node (arm) [below of=x86] { $ARM$ }; \node (mips) [below of=arm] { $MIPS$ }; \node (alpha) [below of=mips] { $Alpha$ }; \draw [arrow] (java) -- (x86); \draw [arrow] (java) -- (arm); \draw [arrow] (java) -- (mips); \draw [arrow] (java) -- (alpha); \draw [arrow] (kotlin) -- (x86); \draw [arrow] (kotlin) -- (arm); \draw [arrow] (kotlin) -- (mips); \draw [arrow] (kotlin) -- (alpha); \draw [arrow] (scala) -- (x86); \draw [arrow] (scala) -- (arm); \draw [arrow] (scala) -- (mips); \draw [arrow] (scala) -- (alpha); \draw [arrow] (closure) -- (x86); \draw [arrow] (closure) -- (arm); \draw [arrow] (closure) -- (mips); \draw [arrow] (closure) -- (alpha); \end{tikzpicture}
\begin{tikzpicture}[node distance=1cm and 10cm] \node (c) { $Java$ }; \node (cpp) [below of=c] { $Kotlin$ }; \node (rust) [below of=cpp] { $Scala$ }; \node (julia) [below of=rust] { $Closure$ }; \node (llvm) [right=2.5cm of c, below of=c] { JVM Bytecode }; \node (x86) [right=4.5cm of c] { $x86$ }; \node (arm) [below of=x86] { $ARM$ }; \node (mips) [below of=arm] { $MIPS$ }; \node (alpha) [below of=mips] { $Alpha$ }; \draw [arrow] (c) -- (llvm); \draw [arrow] (cpp) -- (llvm); \draw [arrow] (rust) -- (llvm); \draw [arrow] (julia) -- (llvm); \draw [arrow] (llvm) -- (x86); \draw [arrow] (llvm) -- (arm); \draw [arrow] (llvm) -- (mips); \draw [arrow] (llvm) -- (alpha); \end{tikzpicture}