Участник конференции:Курылёв Максим Сергеевич
м («Участник конфернеции:Курылев Максим» переименована в «Участник конференции:Курылев Максим») |
м |
||
Строка 13: | Строка 13: | ||
− | '''Электронная почта: ''' | + | '''Электронная почта: ''' ma1oi@bk.ru |
− | '''Мои увлечения:''' | + | '''Мои увлечения:''' узнавать новое |
− | '''Приглашаю к обсуждению:''' | + | '''Приглашаю к обсуждению:''' Тенденции развития языков программирования |
− | * '''''Аннотация конкурсной работы | + | * '''''Аннотация конкурсной работы.''''' <br> |
+ | Развитие вычислительной техники сопровождается созданием новых и совершенствованием существующих средств общения программистов с ЭВМ - языков программирования (ЯП). Под ЯП понимают правила представления данных и записи алгоритмов их обработки, которые автоматически выполняются ЭВМ. В более абстрактном виде ЯП является средством создания программных моделей объектов и явлений внешнего мира. К настоящему времени созданы десятки различных ЯП от самых примитивных до близких к естественному языку человека. <br> | ||
− | + | ЯП можно классифицировать по следующим признакам. <br> | |
+ | 1. По степени ориентации на специфические возможности ЭВМ ЯП делятся на: <br> | ||
+ | • машинно-зависимые; <br> | ||
+ | • машинно-независимые. | ||
+ | <br>К машинно-зависимым ЯП относятся машинные языки, ассемблеры и автокоды, которые используются в системном программировании. Программа на машинно-зависимом ЯП может выполняться только на ЭВМ данного типа. Программа на машинно-независимом ЯП после трансляции на машинный язык становится машинно-зависимой. Этот признак ЯП определяет мобильность получаемых программ (возможность переноса на ЭВМ другого типа). <br> | ||
+ | 2. По степени детализации алгоритма получения результата ЯП делятся на: <br> | ||
+ | • языки низкого уровня; <br> | ||
+ | • языки высокого уровня; <br> | ||
+ | • языки сверхвысокого уровня. <br> | ||
+ | |||
+ | 3. По степени ориентации на решение определенного класса задач: <br> | ||
+ | • проблемно-ориентированные; <br> | ||
+ | • универсальные. <br> | ||
+ | |||
+ | 4. По возможности дополнения новыми типами данных и операциями: <br> | ||
+ | • расширяемые; <br> | ||
+ | • нерасширяемые. <br> | ||
+ | |||
+ | 5. По возможности управления реальными объектами и процессами: <br> | ||
+ | • языки систем реального времени; <br> | ||
+ | • языки систем условного времени. <br> | ||
+ | |||
+ | 6. По способу получения результата: <br> | ||
+ | • процедурные; <br> | ||
+ | • непроцедурные. <br> | ||
+ | |||
+ | 7. По типу решаемых задач: <br> | ||
+ | • языки системного программирования; <br> | ||
+ | • языки прикладного программирования. <br> | ||
+ | |||
+ | 8. Непроцедурные языки по типу встроенной процедуры поиска решений делятся на:<br> | ||
+ | • реляционные; <br> | ||
+ | • функциональные; <br> | ||
+ | • логические.<br> | ||
+ | Рассмотренная схема классификации позволяет каждому ЯП присвоить один из признаков каждого класса. <br> | ||
+ | Рассмотренная схема классификации ЯП позволяет сделать вывод о том, что ЯП обладают определенной специализацией. Поэтому рассмотрим тенденции развития классов ЯП.<br> | ||
+ | Языки системного программирования, на которых создаются операционные системы, трансляторы и другие системные программы, развиваются в направлении повышения их уровня и независимости от ЭВМ. На сегодняшний день почти 90% системного программного обеспечения создается не на языке ассемблера, а на языке C. Например, операционная система Unix практически полностью написана на C. Язык C позволяет получать программы, сравнимые по своей эффективности с программами, написанными на языке ассемблера. Правда, объем программ получается больше, но зато эффективность их создания гораздо выше. | ||
+ | <br>Машинная независимость достигается использованием стандарта языка, поддерживаемого всеми разработчиками трансляторов, и использованием так называемых кросс-систем для эквивалентного преобразования программ с одного языка низкого уровня на другой.<br> | ||
+ | Другим направлением является повышение уровня самого машинного языка. Например, известны Lisp-машины, в которых машинным языком является язык Lisp (реализован аппаратно). Другим примером являются ЭВМ 5-го поколения с машинным языком искусственного интеллекта Prolog.<br> | ||
+ | Язык высокого уровня(ЯВУ) развиваются в направлении поддержки технологий программирования, обеспечения низкоуровневых операций (уровня ассемблера), обеспечения новых информационных технологий (НИТ) и независимости от среды реализации. Следует сказать, что по своим возможностям ЯВУ постепенно сближаются и программисту на C все труднее становится спорить о преимуществах языка C с программистом, работающим на языке Basic.<br> | ||
+ | Тотальный бум переживает технология объектно-ориентированного программирования (ООП): практически все современные ЯВУ поддерживают ООП. Да и все современные программные системы построены на принципах ООП, и сегодня каждый программирующий студент знает, что такое инкапсуляция, наследование и полиморфизм. Для обозначения факта поддержки ООП языки получают приставку Object (например, ObjectPascal) или другие (например, C++).<br> | ||
+ | Windows, сети ЭВМ, серверы, базы данных и Internet, как основа НИТ, оказывают сильнейшее влияние на современные ЯП. Разработчики ЯП просто обязаны включать в языки средства поддержки НИТ, чтобы привлечь программистов на свою сторону. Для поддержки Windows создаются системы визуального программирования с приставкой Visual, например Visual C++, Visual Basic и др. Для работы с БД, сетями и Internet в ЯП включаются специальные внутренние или внешние средства.<br> | ||
+ | Стремление к созданию программ, независимых от типа ЭВМ и операционной системы, привело к созданию языка Java. Основная задача Java - обеспечить выполнение программ, распространяемых через Web-страницы Internet, на любой рабочей станции. Кроме того, Java поддерживает все средства НИТ и в ближайшее время, очевидно, станет самым популярным ЯП. | ||
+ | <br>Популярность языков искусственного интеллекта за последние 10 лет, к сожалению, заметно упала. На мой взгляд это связано прежде всего с психологическими проблемами, которые испытывают программисты при использовании этих языков. Например, в мощнейшем языке Lisp программа имеет очень сложную для понимания списочную структуру и небольшой по объему проект очень быстро выходит из под контроля. В языке Prolog программист должен точно знать логику работы встроенной машины логического вывода, а работа программы зависит от структуры и содержимого базы знаний (БЗ). Если с проектированием программы и структуры БЗ программист справляется, то для заполнения БЗ он должен быть экспертом в предметной области либо тесно контактировать с экспертом и извлекать из него знания, а то и другое является сложной задачей.<br> | ||
[[Категория:Секция ИКТ как составная часть подготовки специалистов]] | [[Категория:Секция ИКТ как составная часть подготовки специалистов]] |
Версия 11:26, 6 апреля 2009
ФИО: Курылев Максим Сергеевич
Город: Тольятти
Место учебы и специальность: ГОУ СПО Тольяттинский социально-педагогический колледж, специальность Программное обеспечение ВТ и АС
Электронная почта: ma1oi@bk.ru
Мои увлечения: узнавать новое
Приглашаю к обсуждению: Тенденции развития языков программирования
- Аннотация конкурсной работы.
Развитие вычислительной техники сопровождается созданием новых и совершенствованием существующих средств общения программистов с ЭВМ - языков программирования (ЯП). Под ЯП понимают правила представления данных и записи алгоритмов их обработки, которые автоматически выполняются ЭВМ. В более абстрактном виде ЯП является средством создания программных моделей объектов и явлений внешнего мира. К настоящему времени созданы десятки различных ЯП от самых примитивных до близких к естественному языку человека.
ЯП можно классифицировать по следующим признакам.
1. По степени ориентации на специфические возможности ЭВМ ЯП делятся на:
• машинно-зависимые;
• машинно-независимые.
К машинно-зависимым ЯП относятся машинные языки, ассемблеры и автокоды, которые используются в системном программировании. Программа на машинно-зависимом ЯП может выполняться только на ЭВМ данного типа. Программа на машинно-независимом ЯП после трансляции на машинный язык становится машинно-зависимой. Этот признак ЯП определяет мобильность получаемых программ (возможность переноса на ЭВМ другого типа).
2. По степени детализации алгоритма получения результата ЯП делятся на:
• языки низкого уровня;
• языки высокого уровня;
• языки сверхвысокого уровня.
3. По степени ориентации на решение определенного класса задач:
• проблемно-ориентированные;
• универсальные.
4. По возможности дополнения новыми типами данных и операциями:
• расширяемые;
• нерасширяемые.
5. По возможности управления реальными объектами и процессами:
• языки систем реального времени;
• языки систем условного времени.
6. По способу получения результата:
• процедурные;
• непроцедурные.
7. По типу решаемых задач:
• языки системного программирования;
• языки прикладного программирования.
8. Непроцедурные языки по типу встроенной процедуры поиска решений делятся на:
• реляционные;
• функциональные;
• логические.
Рассмотренная схема классификации позволяет каждому ЯП присвоить один из признаков каждого класса.
Рассмотренная схема классификации ЯП позволяет сделать вывод о том, что ЯП обладают определенной специализацией. Поэтому рассмотрим тенденции развития классов ЯП.
Языки системного программирования, на которых создаются операционные системы, трансляторы и другие системные программы, развиваются в направлении повышения их уровня и независимости от ЭВМ. На сегодняшний день почти 90% системного программного обеспечения создается не на языке ассемблера, а на языке C. Например, операционная система Unix практически полностью написана на C. Язык C позволяет получать программы, сравнимые по своей эффективности с программами, написанными на языке ассемблера. Правда, объем программ получается больше, но зато эффективность их создания гораздо выше.
Машинная независимость достигается использованием стандарта языка, поддерживаемого всеми разработчиками трансляторов, и использованием так называемых кросс-систем для эквивалентного преобразования программ с одного языка низкого уровня на другой.
Другим направлением является повышение уровня самого машинного языка. Например, известны Lisp-машины, в которых машинным языком является язык Lisp (реализован аппаратно). Другим примером являются ЭВМ 5-го поколения с машинным языком искусственного интеллекта Prolog.
Язык высокого уровня(ЯВУ) развиваются в направлении поддержки технологий программирования, обеспечения низкоуровневых операций (уровня ассемблера), обеспечения новых информационных технологий (НИТ) и независимости от среды реализации. Следует сказать, что по своим возможностям ЯВУ постепенно сближаются и программисту на C все труднее становится спорить о преимуществах языка C с программистом, работающим на языке Basic.
Тотальный бум переживает технология объектно-ориентированного программирования (ООП): практически все современные ЯВУ поддерживают ООП. Да и все современные программные системы построены на принципах ООП, и сегодня каждый программирующий студент знает, что такое инкапсуляция, наследование и полиморфизм. Для обозначения факта поддержки ООП языки получают приставку Object (например, ObjectPascal) или другие (например, C++).
Windows, сети ЭВМ, серверы, базы данных и Internet, как основа НИТ, оказывают сильнейшее влияние на современные ЯП. Разработчики ЯП просто обязаны включать в языки средства поддержки НИТ, чтобы привлечь программистов на свою сторону. Для поддержки Windows создаются системы визуального программирования с приставкой Visual, например Visual C++, Visual Basic и др. Для работы с БД, сетями и Internet в ЯП включаются специальные внутренние или внешние средства.
Стремление к созданию программ, независимых от типа ЭВМ и операционной системы, привело к созданию языка Java. Основная задача Java - обеспечить выполнение программ, распространяемых через Web-страницы Internet, на любой рабочей станции. Кроме того, Java поддерживает все средства НИТ и в ближайшее время, очевидно, станет самым популярным ЯП.
Популярность языков искусственного интеллекта за последние 10 лет, к сожалению, заметно упала. На мой взгляд это связано прежде всего с психологическими проблемами, которые испытывают программисты при использовании этих языков. Например, в мощнейшем языке Lisp программа имеет очень сложную для понимания списочную структуру и небольшой по объему проект очень быстро выходит из под контроля. В языке Prolog программист должен точно знать логику работы встроенной машины логического вывода, а работа программы зависит от структуры и содержимого базы знаний (БЗ). Если с проектированием программы и структуры БЗ программист справляется, то для заполнения БЗ он должен быть экспертом в предметной области либо тесно контактировать с экспертом и извлекать из него знания, а то и другое является сложной задачей.