Some elementary entities belong to the language and are available without further effort by the programmer, with their specific semantics. These we will term <#1441#>concrete<#1441#>. Others we will term <#1442#>abstract<#1442#>: they are constructed by the programmer and abstracted by means of a declaration. We might define programming along these lines as the construction of abstract algorithms.