Machine languages were the earliest programming languages using binary. Assembly languages provided a slight abstraction from machine code using mnemonics. Higher-level languages evolved through generations, with third-generation languages like COBOL and FORTRAN using more English-like syntax. Fourth-generation languages offered further abstraction through visual programming, while fifth-generation languages aimed to use artificial intelligence. Programming languages have transitioned from machine-focused to problem-focused and include compiled, interpreted, procedural, object-oriented, functional, and declarative paradigms.