application programming interface application software comparison of programming languages compiled language compiler compiler optimization computer computer hardware computer program computer programming computer science computer software computing database database management system debugger declarative programming event-driven programming formal semantics of programming languages functional programming hello world program history of computer science history of computing hardware history of programming languages history of the internet history of the graphical user interface imperative programming implementation integrated development environment interpreted language javascript linker list of computer programming topics list of software engineering topics list of timelines lists of countries lists of people literate programming object-oriented programming object pascal php parsing perl personal computer programmer programming language programming language theory programming paradigm programming style programming tool software architecture software brittleness software development process software engineering software maintenance software quality software suite software testing source code source code editor system software text editor visual basic