Classification of Languages

Conceptual classTyping Memory Safety Heap Memory Management
Sappeur imperative static, strong fully memory safe reference counting
C++ imperative static, optionally strongmemory unsafe reference counting
C imperative static, optionally strongmemory unsafe manual,unsafe
Java imperative static, strong memory safe m+s garbage collection
C# imperative static, strong memory safe m+s garbage collection
Go imperative static, strong memory safe m+s garbage collection
Rust imperative static, strong memory safe reference counting
LISP functional dynamic memory safe m+s garbage collection
Prolog logic memory safe m+s garbage collection
Pascal imperative static, optionally strongmemory unsafe manual, unsafe
Ada imperative static, strong optionally memory safe(SPARK Ada) manual, reference counted
Algol 68imperative static, strong memory safe m+s garbage collection