Since the beginning of the computer era, the development of computer programming languages and their translators have been driven by advances in hardware technologies on one hand and expectations in terms of range, performance – both correctness and efficiency — and complexity of applications on the other hand. The introduction of the following major concepts in programming languages can be linked to development of 1st, 2nd, 3rd and 4th generations of hardware:
1940s: Assembly language;
1950s: First HLLs: FORTRAN, LISP and COBOL, also ALGOL-60 report — block structuring, identifier scopes;
1960s: BNF used to specify a programming language grammar, APL, BASIC and PL/I developed, though APL and PL/I could not become popular;
1980s: C++ (OO and system programming), ADA (systems programming), in Japan 5th generation language development, modular programming with parameterized modules, emergence of RISComputers emphasized compiler orientation in CPU design; Perl and Eiffel developed;
1990s and later: Programmer productivity becomes the driving force — VisualBasic, C# developed; Java (OOP and built-in garbage collection), Python, Ruby, JavaScript, XML;
Current trends: Component-oriented software development, mechanisms for security and reliability verification in the language, integration with database, further development of Web languages.