Язык программирования третьего поколения ( 3GL ) — это высокоуровневый язык программирования , который, как правило, более машинно-независим и дружелюбен к программисту, чем машинный код первого поколения и языки ассемблера второго поколения , при этом имея меньшую специфичность по отношению к четвертому и пятому поколениям. [1] Примерами распространенных и исторических языков программирования третьего поколения являются ALGOL , BASIC , C , COBOL , Fortran , Java и Pascal .
Языки 3GL гораздо более независимы от машины и более удобны для программиста. Это включает в себя такие функции, как улучшенная поддержка агрегированных типов данных и выражение концепций способом, который выгоден программисту, а не компьютеру. Язык третьего поколения улучшается по сравнению с языком второго поколения, заставляя компьютер заботиться о несущественных деталях. Языки 3GL более абстрактны, чем предыдущие поколения языков, и, таким образом, могут считаться языками более высокого уровня, чем их аналоги первого и второго поколений. Впервые представленные в конце 1950-х годов, Fortran , ALGOL и COBOL являются примерами ранних языков 3GL.
Большинство популярных сегодня языков общего назначения, таких как C , C++ , C# , Java , BASIC и Pascal , также являются языками третьего поколения, хотя каждый из этих языков может быть дополнительно подразделен на другие категории на основе других современных черт. Большинство 3GL поддерживают структурное программирование . Многие поддерживают объектно-ориентированное программирование . Такие черты чаще используются для описания языка, а не просто для того, чтобы быть 3GL.
3GL позволяет программисту писать программы, которые более или менее независимы от конкретного типа компьютера. Такие языки считаются высокоуровневыми, поскольку они ближе к человеческим языкам и дальше от машинных языков, и, следовательно, требуют компиляции или интерпретации. Напротив, машинные языки считаются низкоуровневыми, поскольку они разработаны для и выполняются физическим оборудованием без необходимости дальнейшего перевода.
Главное преимущество языков высокого уровня перед языками низкого уровня заключается в том, что их легче читать, писать и поддерживать. В конечном счете, программы, написанные на языке высокого уровня, должны быть переведены на машинный язык компилятором или напрямую в поведение интерпретатором.
Эти программы могли работать на разных машинах (они переносимы), поэтому они были машинно-независимыми. Однако, поскольку были разработаны новые, более абстрактные языки, концепция языков высокого и низкого уровня стала довольно относительной. Многие из ранних языков «высокого уровня» теперь считаются относительно низкоуровневыми по сравнению с такими языками, как Python , Ruby и Common Lisp , которые имеют некоторые черты языков программирования четвертого поколения и назывались языками программирования очень высокого уровня в 1990-х годах. [2] [3]