Автор: Пользователь скрыл имя, 22 Ноября 2012 в 17:29, доклад
Язык программирования - это специальный язык, на котором пишут команды для управления компьютером. Языки программирования созданы для того, чтобы людям было проще читать и писать для компьютера, но они затем должны транслироваться (транслятором или интерпретатором) в машинный код, который только и может исполняться компьютером. Языки программирования можно разделить на языки высокого уровня и языки низкого уровня.
Язык программирования - это специальный язык, на котором пишут команды для управления компьютером. Языки программирования созданы для того, чтобы людям было проще читать и писать для компьютера, но они затем должны транслироваться (транслятором или интерпретатором) в машинный код, который только и может исполняться компьютером. Языки программирования можно разделить на языки высокого уровня и языки низкого уровня.
Язык низкого уровня - это язык программирования предназначенный для определенного типа компьютера и отражающий его внутренний машинный код; языки низкого уровня часто называют машинно-ориентированными языками. Их сложно конвертировать для использования на компьютерах с разными центральными процессорами, а также довольно сложно изучать, поскольку для этого требуется хорошо знать принципы внутренней работы компьютера.
Язык высокого уровня - это язык программирования, предназначенный для удовлетворения требований программиста; он не зависит от внутренних машинных кодов компьютера любого типа. Языки высокого уровня используют для решения проблем и поэтому их часто называют проблемно-ориентированными языками. Каждая команда языка высокого уровня эквивалентна нескольким командам в машинных кодах, поэтому программы, написанные на языках высокого уровня, более компактны, чем аналогичные программы в машинных кодах.
Краткая история языков программирования. Хронология
Всю историю компьютерной индустрии и компьютерных наук с определенной точки зрения можно представить как историю развития языков программирования. Меняются времена, усложняются задачи, то, что раньше требовало человеко-лет, нынче энтузиасты делают на коленке за несколько недель; накоплена огромная масса типовых решений, типовых библиотек и типовых программистов. А создание, развитие и изменение языков программирования идет полным ходом.
Объект исследования темы - это языки программирования, которые в разное время и в разных условиях предлагались и предлагаются как альтернатива привычному и общепринятому; их судьба, свойства и шансы.
Сейчас я предложу Вам краткую историю языков программирования:
1801 - Иосиф Мария Жаккард с помощью перфокарт вышивает «hello world» на ткани. Хабровчане тех времен недовольны отсутствием хвостовой рекурсии, многопоточности и заглавных букв.
1842 - Ада Лавлейс пишет первую
программу. Её успехам
1936 - Алан Тьюринг изобретает
все языки, которые
1936 - Алонзо Черч тоже изобретает все возможные языки, только лучше. Его лямбда-исчисление непопулярно, потому что непохоже на С. Критиков не смущает, что язык С еще не изобрели.
1940-е - Различные «компьютеры» «программируют», паяя провода и замыкая контакты.
1957 - Джон Бакус и IBM изобретают Фортран. По поводу IBM и Фортрана не шутят. Компилятор Фортрана выдает ошибку, если на программисте нет галстука.
1958 - Джон МакКарти и Пол Грэм придумывают ЛИСП. Популярности ЛИСПа мешает истощение мировых запасов круглых скобок, к счастью, запасы фигурных и угловых скобок практически неисчерпаемы. Тем не менее, ЛИСП (в наше время известный как Лисп, иногда Arc) - общепризнанный стандарт в области «фундаментальных концепций информационных технологий, таких как рекурсия и снисхождение»
1964 - Джон Кемни и Томас Курц пишут БЕЙСИК, неструктурированный язык для людей, не разбирающихся в программировании.
1970 - Гай Стил и Джеральд Зюсман создают Схему. В результате их усилий появляется "Всемогущая Лямбда", а затем «Всемогущая Лямбда, Универсальная Мультиварка»..
1970 - Никлас Вирт создает процедурный язык Паскаль. Многие недовольны отличным от С синтаксисом оператора присваивания. Критиков не смущает, что язык С еще не изобрели.
1972 - Деннис Ричи изобретает пистолет, стреляющий в обе стороны одновременно. Не удовлетворенный числом смертей и увечий, приносимых этим устройством, он создает язык С и Юникс.
1972 - Ален Колмеро изобретает логический язык Пролог. Задача-максимум ученого - наделить компьютер интеллектом двухлетнего ребенка. Он блестяще справляется с задачей, написав программу, отвечающую «Нет!» на любой запрос.
1973 - Робин Милнер пишет МЛ, язык на основе теории типов M&M. МЛ порождает СМЛ, обладающий формально описанной семантикой. В число языков семейства МЛ входят OCaml, F# и Visual Basic.
1980 - Алан Кей пишет Smalltalk и придумывает термин «объектно-ориентированный». На просьбу объяснить он отвечает «Программы в ООП - просто объекты». На вопрос, из чего состоят объекты, он отвечает «из объектов» и объясняет «все состоит из объектов, в том числе и объекты. И стоит на четырех слонах.»
1983 - Бьёрн Страуструп берет язык С, лепит поверх него все, что приходит на ум, и называет это С++. Чтобы программы скомпилировались за разумное время, их приходится отправлять в будущее искусственному интеллекту Скайнет. Зачем это нужно Скайнету, неясно.
1986 - Брэд Кокс и Том Лав придумывают Objective-C. По их словам, он «сочетает безопасность С с невероятной скоростью Smalltalk».
1987 - Ларри Волл засыпает на клавиатуре. Проснувшись, он принимает строку на мониторе за программу на языке, который Господь предначертал написать своему пророку Ларри. Так появляется Перл.
1990 - Комиссия в составе Саймона Пейтон-Джонса, Пола Худака, Филиппа Водлера, Эштона Катчера и Общества по защите прав животных проектирует Хаскелл - чисто функциональный язык с ленивыми вычислениями.
1991 - Голландский программист Гвидо ван Россум отправляется в Аргентину. Перенеся загадочную операцию, он возвращается с шрамом на черепе, пишет Питон, толпы поклонников провозглашают его Пожизненным Диктатором, и он заявляет, что «есть только один способ».
1995 - Брендан Эйк собирает ошибки всех известных языков, добавляет несколько новых и объединяет все в Livescript. Через некоторое время язык переименовывают в Javascript, чтобы воспользоваться популярностью языка Java. Через некоторое время язык переименовывают в ECMAscript.
1996 - Джеймс Гослинг придумывает Яву. Ява - довольно многословный статически типизированный объектно-ориентированный язык на основе классов, со сборкой мусора, одиночной диспетчеризацией вызовов, одиночным наследованием реализации и множественным наследованием интерфейсов. Sun громко провозглашает Java самым инновационным языком.
2001 - Андерс Хейлсберг придумывает C1. C1 - довольно многословный статически типизированный объектно-ориентированный язык на основе классов, со сборкой мусора, одиночной диспетчеризацией вызовов, одиночным наследованием реализации и множественным наследованием интерфейсов. Microsoft громко провозглашает C1 самым инновационным языком.
Основные виды языков программирования
Язык |
Основное использование |
Описание |
|
Ада |
В обороне |
Высокого уровня |
|
Ассемблер |
Работы, требующие детального контроля за аппаратным обеспечением, быстрого исполнения и программ малого размера |
Быстрый и эффективный, но требующий определенных усилий и навыков |
|
Бейсик |
В образовании, бизнесе, дома |
Прост в изучении |
|
С |
Системное программирование, универсальное программирование |
Быстрый и эффективный, широко используется как универсальный язык |
|
С++ |
В объектно-ориентированном программировании |
Основан на языке С |
|
Кобол |
Программирование в бизнесе |
Жестко ориентирован на коммерческие задачи, легко научиться, но очень много операторов |
|
Форт |
Управление приложениями |
Использует инверсную польскую запись |
|
Фортран |
Научная работа и вычисления |
Основан на математических формулах |
|
Лисп |
Искусственный интеллект |
Язык символов с репутацией трудно изучаемого |
|
Модула-2 |
Системное программирование и программирование в режиме реального времени, универсальное программирование |
Высоко структурирован, предназначен заменить Паскаль для приложений "реального мира" |
|
Оберон |
Универсальное программирование |
Небольшой, компактный язык, соединяющий многие черты Паскаля и Модула-2 |
|
Паскаль |
Универсальный язык |
Высоко структурирован |
|
Пролог |
Искусственный интеллект |
Символьно-логическая система программирования, в начале предназначенная для решения теорем, но сейчас использующаяся чаще для решения задач, связанных с искусственным интеллектом |