Characteristics of High-Level Programming Languages