algol application programming interface application software brainfuck comparison of programming languages compiled language compiler compiler optimization computer computer hardware computer language computer program computer programming computer science computer software computing debugger declarative programming event-driven programming formal semantics of programming languages fortran functional programming hello world program history of computer science imperative programming implementation integrated development environment interpreted language javascript linker list of basic computer programming topics list of software engineering topics literate programming mathematica object-oriented programming object pascal objective-c php parsing perl personal computer programmer programming language programming language theory programming paradigm programming style programming tool smalltalk 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