Parsing programs by hand is painful. Use a parser generator instead. Parser generators take an input which is part programming language and part grammar. Parser generators can also spot ambiguity, and generate efficient parsers. Imperative Programming Common Features of Imperative Languages Imperative languages are based on assignment.
Storage is allocated and deallocated explicitly.
The type declaration determines the data representation. Some languages also supply common Abstract Datatypes such as enumeration types, hash tables, lists, etc. Variables must be assigned to before being read from. Abstract datatypes to hide data representation. Rich type system to build ADTs.