Для системного программирования используется язык программирования. Языки и системы программирования. Современные языки и системы программирования

Для системного программирования используется язык программирования. Языки и системы программирования. Современные языки и системы программирования

06.02.2019

Языки программирования это формальная знаковая система, предназначенная для описания алгоритмов в форме, которая удобна для исполнителя.

Классификация языков программирования

Программа - это детальное и законченное описание алгоритма средствами языка программирования. Исполнителем программы является компьютер. Для выполнения компьютером программа должна быть представлена в машинном коде - последовательности чисел, понимаемых процессором. Написать программу в машинных кодах вручную достаточно сложно. Поэтому сегодня практически все программы создаются с помощью языков программирования, которые по своим синтаксису и семантике приближены к естественному человеческому языку. Это снижает трудоемкость программирования. Однако, текст программы, записанный с помощью языка программирования, должен быть преобразован в машинный код. Эта операция выполняется автоматически с помощью специальной служебной программы, называемой транслятором . Интерпретатор переводит на язык машинных кодов поочередно каждый оператор исходной программы, проверяет правильность записи оператора и немедленно выполняет его. В отличие от интерпретатора компилятор осуществляет перевод на машинный язык всей исходной программы.

Примерами служебных программ - интерпретаторов являются GW Basic, Лого, школьный алгоритмический язык, многие языки программирования баз данных. Компиляторами являются Turbo Pascal, С++, Delphi.

По способу разработки программ можно выделить два подхода:

    процедурное программирование - это программирование, при котором выполнение команд программы определяется их последовательностью, командами перехода, цикла или обращениями к процедурам;

    объектно-ориентированное программирование – программирование, при котором формируются программные объекты, имеющие набор свойств, обладающие набором методов и способные реагировать на события, возникающие как во внешней среде, так и в самом объекте (нажатие мыши, срабатывание таймера, превышение числовой границы и т.д.). Таким образом, выполнение той или иной части программы зависит от событий в программной системе.

Объектно-ориентированное программирование (ООП) не исключает, а охватывает технологию процедурного программирования.

Основные языки программирования

Из универсальных языков программирования наиболее популярны следующие: Basic; Pascal; C++; Java.

Для языка Basic существует много версий, реализованных и как интерпретаторы и как компиляторы. В России Basic традиционно используется в курсе информатики средней школы. Среда визуального программирования Microsoft Visual Basic используется как программная поддержка приложений MS Office.

Язык Pascal является компилируемым и широко используется как среда для обучения программированию в ВУЗах. RAD-средой, наследующей его основные свойства, является среда Borland Delphi.

Для языка C++ RAD-средой является Borland C++ Builder. Этот компилируемый язык часто используется для разработки программных приложений, в которых необходимо обеспечить быстродействие и экономичность программы.

Язык Java - интерпретируемый язык - позволяет создавать платформно-независимые программные модули, способные работать в компьютерных сетях с различными операционными системами. RAD-средой для него является Symantec Cafe.

Система программирования - это система для разработки новых программ на конкретном языке программирования.

Современные системы программирования обычно предоставляют пользователям мощные и удобные средства разработки программ. В них входят:

    компилятор или интерпретатор ;

    интегрированная среда разработки;

    средства создания и редактирования текстов программ;

    обширные библиотеки стандартных программ и функций;

    отладочные программы , т.е. программы, помогающие находить и устранять ошибки в программе;

    "дружественная" к пользователю диалоговая среда;

    многооконный режим работы;

    мощные графические библиотеки; утилиты для работы с

библиотеками

    встроенный ассемблер ;

    встроенная справочная служба;

    другие специфические особенности.

Популярные системы программирования - Turbo Basic , Quick Basic , Turbo Pascal , Turbo C . В последнее время получили распространение системы программирования, ориентированные на создание Windows-приложений :

    пакет Borland Delphi (Дельфи) - блестящий наследник семейства компиляторов Borland Pascal, предоставляющий качественные и очень удобные средства визуальной разработки. Его исключительно быстрый компилятор позволяет эффективно и быстро решать практически любые задачи прикладного программирования.

    пакет Microsoft Visual Basic - удобный и популярный инструмент для создания Windows-программ с использованием визуальных средств. Содержит инструментарий для создания диаграмм и презентаций .

    пакет Borland C++ - одно из самых распространённых средств для разработки DOS и Windows приложений.

Введение ……………………………………………………………………....2

1 Язык и система программирования – понятие, сущность ……………….4

2 Классификация языков программирования……………………………….6

2.1 Машинно – ориентированные языки ………………………………....6

2.1.1 Машинные языки ………………………………………………...6

2.1.2 Языки символического кодирования …………………………...7

2.1.3 Автокоды …………………………………………………………8

2.1.4 Макрос …………………………………………………………….9

2.2 Машинно – независимые языки ………………………………………..9

2.2.1 Машинно – независимые языки …………………………………10

2.2.2 Универсальные языки ……………………………………………10

2.2.3 Диалоговые языки ………………………………………………...11

2.2.4 Непроцедурные языки ……………………………………………12

3 Современные языки и системы программирования ………………………13

3.1 Basic ………………………………………………………………………13

3.2 Pascal ……………………………………………………………………...14

3.3 Delphi ……………………………………………………………………..15

3.4 Fortran …………………………………………………………………….17

3.5 СиС++ …………………………………………………………………...18

3.6 Java………………………………………………………………………..20

Заключение ……………………………………………………………………..22

Список использованных источников...............................................................23

Введение

Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования. Смысл появления такого языка – оснащенный набор вычислительных формул дополнительной информации, превращает данный набор в алгоритм. Язык программирования служит двум связанным между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и формирует концепции, которыми пользуется программист, размышляя о том, что делать. Первой цели идеально отвечает язык, который настолько "близок к машине", что всеми основными машинными аспектами можно легко и просто оперировать достаточно очевидным для программиста образом. Второй цели идеально отвечает язык, который настолько "близок к решаемой задаче", чтобы концепции ее решения можно было выражать прямо и коротко. Связь между языком, на котором мы думаем/программируем, и задачами и решениями, которые мы можем представлять в своем воображении, очень близка. По этой причине ограничивать свойства языка только целями исключения ошибок программиста в лучшем случае опасно. Как и в случае с естественными языками, есть огромная польза быть, по крайней мере, двуязычным. Язык предоставляет программисту набор концептуальных инструментов, если они не отвечают задаче, то их просто игнорируют. Например, серьезные ограничения концепции указателя заставляют программиста применять вектора и целую арифметику, чтобы реализовать структуры, указатели и т.п. Хорошее проектирование и отсутствие ошибок не может гарантироваться чисто за счет языковых средств.Может показаться удивительным, но конкретный компьютер способен работать с программами, написанными на его родном машинном языке. Существует почти столько же разных машинных языков, сколько и компьютеров, но все они суть разновидности одной идей простые операции производятся со скоростью молнии на двоичных числах. Персональные компьютеры IBM используют машинный язык микропроцессоров семейства 8086, т.к. их аппаратная часть основывается именно на данных микропроцессорах. Можно писать программы непосредственно на машинном языке, хотя это и сложно. На заре компьютеризации(в начале 1950-х г.г.), машинный язык был единственным языком, большего человек к тому времени не придумал. Для спасения программистов от сурового машинного языка программирования, были созданы языки высокого уровня (т.е. немашинные языки), которые стали своеобразным связующим мостом между человеком и машинным языком компьютера. Языки высокого уровня работают через трансляционные программы, которые вводят "исходный код" (гибрид английских слов и математических выражений, который считывает машина), и в конечном итоге заставляет компьютер выполнять соответствующие команды, которые даются на машинном языке. Существует два основных вида трансляторов: интерпретаторы, которые сканируют и проверяют исходный код в один шаг, и компиляторы, которые сканируют исходный код для производства текста программы на машинном языке, которая затем выполняется отдельно.

1 Язык и система программирования – понятие, сущность

В настоящее время наблюдается стремительное развитие научной дисциплины, называемой программированием. При этом появляются не просто новые языки, появляются новые идеи, увеличивающие мощность и эффективность языков. Можно, не вдаваясь в подробности любого из существующих или только разрабатываемых языков, отметить следующую тенденцию: развитие языков идет в сторону повышения выразительности исходного текста программы. Это способствует сокращению размера программы и повышению ее надежности.

Для повышения выразительности языка необходимо, чтобы язык содержал средства для выражения абстрактных понятий. Это помогает сделать большие программы более простыми для понимания. Поэтому поддержка абстракций является обязательным условием для любого современного языка программирования. При этом базис языка (множество предоставляемых языком возможностей, смысловых конструкций) должен иметь минимальную мощность.

К наиболее общим понятиям, которыми оперирует программист при использовании конкретного языка программирования, относятся понятия программы и виртуальной машины. Программа должна удовлетворять требованиям (спецификациям) конкретного языка программирования и служит контейнером для хранения последовательности действий и множества данных. Виртуальная машина выступает в роли интерпретатора основных понятий, используемых в языке программирования и является средой существования программы. Все остальные абстракции, рассматриваемые в статье, группируются вокруг этих базовых абстракций.

В ряде случаев можно рассматривать процесс программирования как процесс моделирования. При этом создается программа-модель, способная реализовывать поведение оригинала, описываемого в постановке задачи. Поэтому в дальнейшем заменителем для понятия программа будет выступать понятие модель, а для понятия виртуальная машина - понятие моделирующая среда.

2 Классификация языков программирования

2.1 Машинно – ориентированные языки

Машинно – ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно –ориентированные языки позволяют использовать все возможности и особенности Машинно – зависимых языков:

Высокое качество создаваемых программ (компактность и скорость

выполнения);

Возможность использования конкретных аппаратных ресурсов;

Предсказуемость объектного кода и заказов памяти;

Для составления эффективных программ необходимо знать систему

команд и особенности функционирования данной ЭВМ;

Трудоемкость процесса составления программ (особенно на

машинных языках и ЯСК), плохо защищенного от появления

Низкая скорость программирования;

Невозможность непосредственного использования программ,

составленных на этих языках, на ЭВМ других типов.

Машинно-ориентированные языки по степени автоматического программирования подразделяются на классы.

2.1.1 Машинный язык

Как я уже упоминал, в введении, отдельный компьютер имеет свой определенный Машинный язык (далее МЯ), ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции.

В новых моднлях ЭВМ намечается тенденция к повышению внутренних языков машинно – аппаратным путем реализовывать более сложные команды, приближающиеся по своим функциональным действиям к операторам алгоритмических языков программирования.

2.1.2 Языки Символического Кодирования

Продолжим рассказ о командных языках, Языки Символического Кодирования (далее ЯСК), так же, как и МЯ, являются командными. Однако коды операций и адреса в машинных командах, представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в ЯСК заменены на символы (идентификаторы), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ.

Использование символических адресов – первый шаг к созданию ЯСК. Команды ЭВМ вместо истинных (физических) адресов содержат символические адреса. По результатам составленной программы определяется требуемое количество ячеек для хранения исходных промежуточных и результирующих значений. Назначение адресов, выполняемое отдельно от составления программы в символических адресах, может проводиться менее квалифицированным программистом или специальной программой, что в значительной степени облегчает труд программиста.

2.1.3Автокоды

Есть также языки, включающие в себя все возможности ЯСК, посредством расширенного введения макрокоманд - они называются Автокоды.

В различных программах встречаются некоторые достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования, доступный программисту. Макрокоманды переводятся в машинные команды двумя путями –расстановкой и генерированием. В постановочной системе содержатся «остовы» - серии команд, реализующих требуемую функцию, обозначенную макрокомандой. Макрокоманды обеспечивают передачу фактических параметров, которые в процессе трансляции вставляются в «остов» программы, превращая её в реальную машинную программу.

Здравствуйте, я отвечу на часть вопроса:
Программированием никогда не занимался, поэтому хотелось бы получить развернутый ответ, с чего лучше начать и что изучать, чтобы было полегче, заранее благодарю.

Писал быстро, возможны ошибки.
Или, Какие языки выбрать, что бы впоследствии без труда писать на 10-ти языках. (важно, проверно, не теряется время).

************************************************************************************************************

Я несколько лет обучаю языку программирования.
Наблюдал за разными людьми. Как правило выбранная тематика приводит человека к языку.
Кому-то нравятся игры, кому-то программы. кто-то хочет писать ботов и т.д.

Как правило, после начала изучения языка наступает момент, когда человек узнаёт больше о языке и ему уже хочется писать совсем другие приложения.
Это не значит, что он передумал, просто начинает понимать возможности.

Тогда и начинаются сомнения, а тот ли язык программирования выбрал и т.д.

Я думал над этим вопросом несколько лет и пришёл к такому выводу.

1. Ошибка. Нельзя выбирать узкопрофильный язык.
Нужно выбирать язык общего назначения первый для изучения. Более подходит для этого Пайтон.
Пайтон откроет дорогу к любому софту, так как содержит большое количество библиотек.
Например, можно писать сайты используя Джанго. Или можно писать графические программы, например, использую PyQt (библиотека написанная на С++, под управлением пайтон).
Можно заняться тестированием или машинным обучением (то есть делать сайты и программы умными, которые способны принимать решения сами. Все эти пакеты используют библиотеку NumPy написанную на Си. И их ряд большой.
Skipy - пакет, которые собирает в себе сборку программ, для любой сколь сложной обработки всего чего угодно.

Я надеюсь возможности понятны.

Пайтон язык с динамической типизацией. то есть пол работы делает за вас.
Изучив пайтон, вы вообще въедете в программирование и уже будете делать софт, возможно зарабатывать.

Если, вы поймёте, что вам это интересно, то можно идти дальше.
Помните я говорил в начале, что важно выбрать язык общего назначения.

Так вот второе правило, если всё-таки решите стать профессионалом высокого уровня, второй язык нужно выбрать, который лежит в основе большинства других языков.

Это язык Си.
Си довольно просто, понятный язык, очень лаконичный и быстрый.
Нужен он для того, что бы открыть дорогу ко всем другим Си подобным языкам.
По сути, например, что бы понять С++ нужно будет просмотреть только отличия.

Я к этому пришёл сам за многие годы, не так давно наткнулся на одно видео с Гарварда, меня очень порадовало, что я был прав.
Этот подход использует во многих университетах.

Почему работает эта схема?

1. Пайтон, как язык общего назначения, даст вам познакомится с разным программным обеспечением.
Вы разберётесь, что вы хотите не выходя за рамки языка. Я говорю именно о времени, так как его потеря слишком дорого обходится.

2. Вы познакомитесь с парадигмами, которые есть в каждом языке, тип объекта (например список, строка и т.д).
Вы познакомитесь с переменными. с операциями над объектами и вам станет понятно, что есть язык изнутри.

Объясню проще. Каждый день мы свою голову используем, как компьютер.
Например, жена послала в магазин, так как собралась варить борщ.
Как правило большинство людей записывают, купить свеклу, морковь и т.д.
То есть в голове вы быстро расставили все действия.
Пойти в магазин. Достать список, прочитать, найти прилавки с продуктами, положить в карзину, оплатить, принести домой. отдать жене.

В вашей голове прошло много операций.

Тоже самое и в компьютере, только компьютеру нужно объяснить.
Например, если б мы писали программу. похода в магазин, то нам бы понадобилось нечто что способно объяснить компьютеру, что делать.

Именно, для этого и были придуманы языки программирования.

Часто говорю, своим ученикам, что каждый уже программист, так как совершает некие действия, каждый день.
Для программы был тот же список, вернее тип данных, или тип объекта, который и называется список.
Просто в язык он обозначается, например, в пайтон двумя квадратными скобками ["свекла", "морковь"]

Обратите внимание, язык программирование, как правило уже придуман под нужны людей.
В список можно добавить что угодно, например соль.
Это область называется операции над объектами.
Если в голове мы быстро просчитали, подошли к прилавку, протянули руку и положили, например морковь в корзину.
То, компьютеру нужно объяснить. То есть мы понимаем. что нужно добавить ту же морковь в корзину, но компьтео поймёт только свою команду, например добавить в пайтон звучало бы add .

Процесс думаю понятен.

Тогда вернусь к выше утверждениям.
Так вот Пайтон даст возможность начать писать всё что угодно, программы. игры, программы под андроид, сайты.
Если вам кто-то скажет (повторюсь), что пайтон медленный, не верьте.
Вы пользуетесь Ютуб? Так вот в большинстве он написан на пайтон. (источник М. Лутц).
Второе, как я говорил ранее, пайтон имеет огромное количество библиотек, к примеру, возьмём PyQt, написание графических программ. Сама библиотека написана на С++ (самый быстрый язык на сегодня). А управляем мы при помощи Пайтон.
Суть программирования проста. Взял виджет, в котором уже заложена много действий и программа готова.

Но есть ещё одна важная вещь, которая вам нужна.
До начала программирования у вас есть только желание, но остаются внутри вопросы, а какой язык выбрать, потом сомнения, а тот ли язык выбран??
Именно для этого и важно взять первый пайтон. Это будет уже точно тот язык, потому что приведёт вас к пониманию, а что собственно вы будете программировать.

После написания приложений на пайтон, примерно через 1-1,5 года, вы начнёте понимать себя самого, то есть понимать, что вы вообще хотите.

У вас начнут проявляться реальные конкретные желания.
То есть вы точно например будете понимать, что вы будет писать сайты. вам больше чем достаточно будет Фреймворка Джанго.

Здесь остановлюсь.
Связка Джанго пайтон очень опасный подход.
так как Джанго это настолько большой мир, что увлекаясь им, человек начинает обретать, такую склонность, как фреймворко зависимость. Что это такое?
Человек начинает терять способность писать на пайтон, так как Джанго это полностью автономный фреймфорк имеет свои модули, классы, архитектуру и структуру.

И начинает забываться сам пайтон.

Важно. Изучать например Джанго и PyQt. В чём суть?
Обязательно изучать то, что будет вас развивать в чистом пайтон. Я рекомендую android, так как не только полезно, но и перспективно.

Кстати, попутно отвечу на вопрос, нужно ли изучать пайтон, для Джанго?
Да нужно. Что нужно изучать? По минимуму типы объектов и начальное понимание ООП.
Типы объектов нужны, чтобы по минимуму не терять время.
Например, я наблюдал как новичок неделю боролся. а потом заявил, что не поставил одинарную кавычку.

Если б он изучил типы объектов, то сразу бы увидел, что в фрагменте кода, строки (тип объекта), они обозначаются одинарными или двойными кавычками.

Второе, не будет понятна справка джанго, потому что там объясняется именно типами данных.

И наконец закончу. так как уже несколько раз подвожу вк Си, но всё откладываю.

К тому времени, как вы будете писать на пайтон, у вас будет понимание что вы хотите.
Поэтому следующий язык программирования вы будете выбирать уже осознано.

Что бы не прогадать после пайтон нужно изучить Си.
Так как такие языки. как PHP, Джава. С++, Си шарп и многие другие имею в своей основе Си подобный синтаксис.
Само изучение следующего Языка это просто просмотр и сразу применение отличий.

Вот так изучение всего двух языков даст выход к десятку языков.

Повторяю, важное в этом подходе - это прогресс без потери времени.

Начать можно с просмотра бесплатного курса,
методика моментально понимания python.
Прочитайте на картинке, что это

Выше рассказывал процесс похода в магазин. И не просто так. Многие не понимают, что язык придуман для облегчения жизни. (вот что написала девушка Анна , как она выразилась это от неё ускользало.).

А ведь непонимание этого простого момента не даёт выучить язык большинсту людей. У них разлад в голове, язык сам по себе, а мышление изучающего само по себе. И человек начинает думать, а как же мыслить, как программист, в то время. как он уже мыслит, как программист.

Я высказал своё мнение, принимать решение вам.
Я показал вам многие факторы. которые вы ранее не учитывали..
Но по крайне мере, для меня это работает.

Надеюсь статья получилась простой и всеобъемлющей.

Ещё одна деталь.
Важно сделать язык частью жизни.
Как происходит понимание языка с ноля, до промышленного программирования? ()

Успехов Вам.

Спасибо за доверие.

СИСТЕМЫ И ЯЗЫКИ ПРОГРАММИРОВАНИЯ

1. Системы программирования

Системы программирования - это комплекс инструментальных программных средств, предназначенный для работы с программами на одном из языков программирования. Системы программирования предоставляют сервисные возможности программистам для разработки их собственных компьютерных программ.

В настоящее время разработка любого системного и прикладного программно обеспечения осуществляется с помощью систем программирования, в состав которых входят:

    трансляторы с языков высокого уровня;

    средства редактирования, компоновки и загрузки программ;

    макроассемблеры (машинно-ориентированные языки);

    отладчики машинных программ.

Системы программирования, как правило, включают в себя

    текстовый редактор (Edit), осуществляющий функции записи и редактирования исходного текста программы;

    загрузчик программ (Load), позволяющий выбрать из директория нужный текстовый файл программы;

    запускатель программ (Run), осуществляющий процесс выполнения программы;

    компилятор (Compile), предназначенный для компиляции или интерпретации исходного текста программы в машинный код с диагностикой синтаксических и семантических (логических) ошибок;

    отладчик (Debug), выполняющий сервисные функции по отладке и тестированию программы;

    диспетчер файлов (File), предоставляющий возможность выполнять операции с файлами: сохранение, поиск, уничтожение и т.п.

Ядро системы программирования составляет язык.

Широкое распространение среди разработчиков программ, а также при обучении программированию, получили системы программирования «Турбо» (Turbo) фирмы Borland, ядром которых являются трансляторы с языков программирования Бейсик, Паскаль, Си, Пролог и др. Интерфейс Турбо-оболочки для любых систем программирования внешне совершенно одинаков и предоставляет пользователю стандартный набор функций и команд.

Технология разработки программ с использованием популярной системы программирования Турбо-Паскаль 7 будет рассмотрена позже. В подобных интегрированных системах программирования сделана попытка предоставить разработчику программ максимум сервисных возможностей.

2. Классификация языков программирования

На заре компьютерной эры машинный код был единственным средством общения человека с компьютером. Огромным достижением создателей языков программирования было то, что они сумели заставить сам компьютер работать переводчиком с этих языков на машинный код.

Существующие языки программирования можно разделить на две группы: процедурные и непроцедурные (см. рис. 1).

Процедурные (или алгоритмические) программы представляют из себя систему предписаний для решения конкретной задачи. Роль компьютера сводится к механическому выполнению этих предписаний.

Процедурные языки разделяют на языки низкого и высокого уровня.

Разные типы процессоров имеют разные наборы команд. Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. Имеется в виду, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора.

Языки низкого уровня (машинно-ориентированные) позволяют создавать программы из машинных кодов, обычно в шестнадцатеричной форме. С ними трудно работать, но созданные с их помощью высококвалифицированным программистом программы занимают меньше места в памяти и работают быстрее. С помощью этих языков удобнее разрабатывать системные программы, драйверы (программы для управления устройствами компьютера), некоторые другие виды программ.

Языком низкого уровня (машинно-ориентированным) является Ассемблер , который просто представляет каждую команду машинного кода, но не в виде чисел, а с помощью условных символьных обозначений, называемыхмнемониками.

С помощью языков низкого уровня создаются очень эффективные и компактные программы, так как разработчик получает доступ ко всем возможностям процессора.

Языки программирования высокого уровня значительно ближе и понятнее человеку, нежели компьютеру. Особенности конкретных компьютерных архитектур в них не учитываются, поэтому создаваемые программы на уровне исходных текстов легко переносимы на другие платформы, для которых создан транслятор этого языка. Разрабатывать программы на языках высокого уровня с помощью понятных и мощных команд значительно проще, а ошибок при создании программ допускается гораздо меньше.

Основное достоинство алгоритмических языков высокого уровня - возможность описания программ решения задач в форме, максимально удобной для восприятия человеком. Но так как каждое семейство ЭВМ имеет свой собственный, специфический внутренний (машинный) язык и может выполнять лишь те команды, которые записаны на этом языке, то для перевода исходных программ на машинный язык используются специальные программы-трансляторы.

Работа всех трансляторов строится по одному из двух принципов: интерпретация или компиляция.

Интерпретация подразумевает пооператорную трансляцию и последующее выполнение оттранслированного оператора исходной программы. В связи с этим можно отметить два недостатка метода интерпретации: во-первых, интерпретирующая программа должна находиться в памяти ЭВМ в течение всего процесса выполнения исходной программы, т.е. занимать определенный объем памяти; во-вторых, процесс трансляции одного и того же оператора повторяется столько раз, сколько раз должна исполняться эта команда в программе, что резко снижает производительность работы программы.

Несмотря на указанные недостатки, трансляторы-интерпретаторы получили достаточное распространение, так как они удобны при разработке и отладке исходных программ.

При компиляции процессы трансляции и выполнения разделены во времени: сначала исходная программа полностью переводится на машинный язык (после чего наличие транслятора в оперативной памяти становится ненужным), а затем оттранслированная программа может многократно исполняться. Следовательно, для одной и той же программы трансляция методом компиляции обеспечивает более высокую производительность вычислительной системы при сокращении требуемой оперативной памяти.

Большая сложность в разработке компилятора по сравнению с интерпретатором с того же самого языка объясняется тем, что компиляция программы включает два действия: анализ, т.е. определение правильности записи исходной программы в соответствии с правилами построения языковых конструкций входного языка, и синтез - генерирование эквивалентной программы в машинных кодах. Трансляция методом компиляции требует неоднократного "просмотра" транслируемой программы, т.е. трансляторы-компиляторы являются многопроходными: при первом проходе они проверяют корректность синтаксиса языковых конструкций отдельных операторов независимо друг от друга, при последующем проходе - корректность синтаксических взаимосвязей между операторами и т.д.

Полученная в результате трансляции методом компиляции программа называется объектным модулем , который представляет собой эквивалентную программу в машинных кодах, но не "привязанную" к конкретным адресам оперативной памяти. Поэтому перед исполнением объектный модуль должен быть обработан специальной программой операционной системы (редактором связей – Link) и преобразован взагрузочный модуль , т.е. программный модуль с относительными адресами.

Наряду с рассмотренными выше трансляторами-интерпретаторами и трансляторами-компиляторами на практике используются также трансляторы интерпретаторы-компиляторы, которые объединяют в себе достоинства обоих принципов трансляции: на этапе разработки и отладки программ транслятор работает в режиме интерпретатора, а после завершения процесса отладки исходная программа повторно транслируется в объектный модуль (т.е. уже методом компиляции). Это позволяет значительно упростить и ускорить процесс составления и отладки программ, а за счет последующего получения объектного модуля обеспечить более эффективное исполнение программы.

Рис. 1. Общая классификация языков программирования

Классическое процедурное программирование требует от программиста детального описания того, как решать задачу, т.е. формулировки алгоритма и его специальной записи. При этом ожидаемые свойства результата обычно не указываются. Основные понятия языков этих групп - оператор и данные. При процедурном подходе операторы объединяются в группы - процедуры. Структурное программирование в целом не выходит за рамки этого направления, оно лишь дополнительно фиксирует некоторые полезные приемы технологии программирования.

Принципиально иное направление в программировании связано с методологиями (иногда говорят «парадигмами») непроцедурного программирования. К ним можно отнести объектно-ориентированное и декларативное программирование. Объектно-ориентированный язык создает окружение в виде множества независимых объектов. Каждый объект ведет себя подобно отдельному компьютеру, их можно использовать для решения задач как «черные ящики», не вникая во внутренние механизмы их функционирования. Из языков объектного программирования, популярных среди профессионалов, следует назвать прежде всего Си++, для более широкого круга программистов предпочтительны среды типа Delphi и Visual Basic

При использовании декларативного языка программист указывает исходные информационные структуры, взаимосвязи между ними и то, какими свойствами должен обладать результат. При этом процедуру его получения («алгоритм») программист не строит (по крайней мере, в идеале). В этих языках отсутствует понятие «оператор» («команда»). Декларативные языки можно подразделить на два семейства - логические (типичный представитель - Пролог) и функциональные (Лисп).

Охарактеризуем наиболее известные языки программирования.

    Фортран (FORmula TRANslating system - система трансляции формул); старейший и по сей день активно используемый в решении задач математической ориентации язык. Является классическим языком для программирования на ЭВМ математических и инженерных задач

    Бейсик (Beginner"s All-purpose Symbolic Instruction Code – универсальный символический код инструкций для начинающих); несмотря на многие недостатки и изобилие плохо совместимых версий - самый популярный по числу пользователей. Широко употребляется при написании простых программ.

    Алгол (ALGOrithmic Language - алгоритмический язык); сыграл большую роль в теории, но для практического программирования сейчас почти не используется.

    ПЛ/1 (PL/1 Programming Language - язык программирования первый); многоцелевой язык; сейчас почти не используется.

    Паскаль (Pascal - назван в честь ученого Блеза Паскаля); чрезвычайно популярен как при изучении программирования, так и среди профессионалов. Создан в начале 70-х годов швейцарским ученым Никлаусом Виртом. Язык Паскаль первоначально разрабатывался как учебный, и, действительно, сейчас он является одним из основных языков обучения программированию в школах и вузах. Однако, качества его в совокупности оказались столь высоки, что им охотно пользуются и профессиональные программисты. Не менее впечатляющей, в том числе и финансовой, удачи добился Филип Кан, француз, разработавший систему Турбо-Паскаль. Суть его идеи состояла в объединении последовательных этапов обработки программы - компиляции, редактирования связей, отладки и диагностики ошибок - в едином интерфейсе. Версии Турбо-Паскаля заполонили практически все образовательные учреждения, программистские центры и частные фирмы. На базе языка Паскаль созданы несколько более мощных языков (Модула, Ада, Дельфи).

    Кобол (COmmon Business Oriented Language - язык, ориентированный на общий бизнес); в значительной мере вышел из употребления. Был задуман как основной язык для массовой обработки данных в сферах управления и бизнеса.

    АДА ;является языком, победившим (май 1979 г.) в конкурсе по разработке универсального языка, проводимым Пентагоном с 1975 г. Разработчики - группа ученых во главе с Жаном Ихбиа. Победивший язык окрестили АДА, в честь Огасты Ады Лавлейс. Язык АДА - прямой наследник языка Паскаль. Этот язык предназначен для создания и длительного (многолетнего) сопровождения больших программных систем, допускает возможность параллельной обработки, управления процессами в реальном времени и многое другое, чего трудно или невозможно достичь средствами более простых языков.

    Си (С - «си»); широко используется при создании системного программного обеспечения. Наложил большой отпечаток на современное программирование (первая версия - 1972 г.), является очень популярным в среде разработчиков систем программного обеспечения (включая операционные системы). Си сочетает в себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам, чего не обеспечивают такие языки, как Бейсик и Паскаль.

    Си++ (С++);объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году. Множество новых мощных возможностей, позволивших резко повысить производительность программистов, наложилось на унаследованную от языка Си определенную низкоуровневость.

    Дельфи (Delphi); язык объектно-ориентированного «визуального» программирования; в данный момент чрезвычайно популярен. Созданный на базе языка Паскаль специалистами фирмыBorlandязыкDelphi, обладая мощностью и гибкостью языков Си и Си++, превосходит их по удобству и простоте интерфейса при разработке приложений, обеспечивающих взаимодействие с базами данных и поддержку различного рода работ в рамках корпоративных сетей и сети Интернет.

    Ява (Java); платформенно-независимый язык объектно-ориентированного программирования, чрезвычайно эффективен для создания интерактивных веб-страниц. Этот язык был создан компаниейSunв начале 90-х годов на основе СИ++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей.

    Лисп (Lisp) - функциональныйязык программирования. Ориентирован на структуру данных в форме списка и позволяет организовать эффективную обработку больших объемов текстовой информации.

    Пролог (PROgramming in LOGic – логическое программирование). Главное назначение языка - разработка интеллектуальных программ и систем. Пролог - это язык программирования, созданный специально для работы с базами знаний, основанными на фактах и правилах (одного из элементов систем искусственного интеллекта). В языке реализован механизм возврата для выполнения обратной цепочки рассуждений, при котором предполагается, что некоторые выводы или заключения истинны, а затем эти предположения проверяются в базе знаний, содержащей факты и правила логического вывода. Если предположение не подтверждается, выполняется возврат и выдвигается новое предположение. В основу языка положена математическая модель теории исчисления предикатов.

Языки программирования для Интернета:

    HTML . Общеизвестный язык для оформления документов. Он очень прост и содержит элементарные команды форматирования текста, добавления рисунков, задания шрифтов и цветов, организации ссылок и таблиц.

    PERL . Он задумывался как средство эффективной обработки больших текстовых файлов, генерации текстовых отчетов и управления задачами. По мощностиPerlзначительно превосходит языки типа Си. В него введено много часто используемых функций работы со строками, массивами, управление процессорами, работа с системной информацией.

    Tcl / Tk . Этот язык ориентирован на автоматизацию рутинных процессов и состоит из мощных команд. Он независим от системы и при этом позволяет создавать программы с графическим интерфейсом.

    VRML . Создан для организации виртуальных трехмерных интерфейсов в Интернете. Он позволяет описывать в текстовом виде различные трехмерные сцены, освещение и тени, текстуры.

Из универсальных языков программирования сегодня наиболее популярны:

    Бейсик – для освоения требует начальной подготовки;

    Паскаль – требует специальной подготовки;

    Си++, Ява – требуют проффесиональной подготовки.

Для каждого из этих языков программирования сегодня имеется немало систем программирования, выпускаемых различными фирмами и ориентированных на различные модели ПК и операционной системы. Наиболее популярны следующие визуальные среды быстрого проектирования программы для Windows:

      Basic: Microsoft Visual Basic

      Pascal: Borland Delphi

      C++: Borland C++Bulider

      Java: Symantec Cafe

Для разработки серверных и распределенных приложений можно использовать систему программирования MicrosoftVisualC++, продукты фирмыInpriseпод маркойBorland. Практически любые средства программирования наJava.

Выбор языка программирования зависит от многих факторов: назначения, удобства написания исходных программ, эффективности получаемых объектных программ и т.п. Разнотипность решаемых компьютером задач и определяет многообразие языков программирования. По все видимости, в программировании наилучший результат достигается при индивидуальном подходе, исходящем из класса задачи, уровня и интересов программиста.

Наименование параметра Значение
Тема статьи: Языки и системы программирования
Рубрика (тематическая категория) Информатика

Программа - ϶ᴛᴏ логически упорядоченная последовательность команд, необходимых для управления компьютером (выполнения им конкретных операций), в связи с этим программирование сводится к созданию последовательности команд, крайне важно й для решения определœенной задачи.

Процессор компьютера - ϶ᴛᴏ большая интегральная микросхема. Все команды и данные он получает в виде электрических сигналов, которые можно представить как совокупность нулей и единиц. По этой причине реально программа, с которой работает процессор, представляет собой последовательность двоичных чисел, называемую машинным кодом . Самому написать программу в машинном коде весьма сложно, причем эта сложность резко возрастает с увеличением размера программы и трудоемкости решения нужной задачи. По этой причине сегодня практически всœе программы создаются с помощью языков программирования .

При этом с помощью языка программирования создается не готовая программа, а только ее текст (исходный код ), описывающий ранее разработанный алгоритм. Чтобы получить работающую программу, нужно данный текст с помощью специальных служебных приложений, называемых трансляторами , либо перевести в машинный код, либо исполнить.

Существуют трансляторы трех видов: компиляторы, интерпретаторы и ассемблеры.

Компиляторы полностью обрабатывают весь исходный код: просматривают его в поисках синтаксических ошибок (иногда несколько раз), выполняют определœенный смысловой анализ и затем автоматически переводят (транслируют) на машинный язык – генерируют машинный код.

Интерпретатор берет очередной оператор языка исходного кода программы, анализирует его структуру и затем сразу исполняет оттранслированную команду. Только после того как текущий оператор успешно выполнен, интерпретатор перейдет к следующему причем, в случае если один и тот же оператор должен выполняться в программе многократно, интерпретатор всякий раз будет выполнять его так, как будто встретил впервые. При этом исполняемый файл не создается. Разрабатывать интерпретаторы проще, чем компиляторы, но работает интерпретируемая программа, как правило, медленнее скомпилированной.

Ассемблеры предназначены для перевода программы, написанной на языке ассемблера, в машинный код.

Языки программирования – искусственные языки. От естественных они отличаются ограниченным числом ʼʼсловʼʼ и очень строгими правилами записи команд (операторов). Совокупность подобных требований образует синтаксис языка программирования, а смысл каждой команды и других конструкций языка – его семантику. Нарушение формы записи программы приводит к тому, что транслятор не может понять назначение оператора и выдает сообщение о синтаксической ошибке . Правильно написанное, но не отвечающее алгоритму использование команд языка, приводит к семантическим ошибкам , называемым еще логическими ошибками или ошибками времени выполнения.

Процесс поиска ошибок в программе принято называть тестированием, процесс устранения ошибок – отладкой.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows