Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс_ред.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.76 Mб
Скачать

Курс С#

Понятие языка программирования. Уровни языков программирования

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

  • Машинные языки

  • Ассемблерные языки (языки низкого уровня)

  • Языки высокого уровня

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

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

1300042774

1400593419

1200274027

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

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

LOAD BASEPAY

ADD ОVERPAY

STORE GROSSPAY

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

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

grossPay = basePay + overpay

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

(Языки сверхвысокого уровня)

. По степени ориентации на решение определенного класса задач: · проблемно-ориентированные;  · универсальные.

По возможности дополнения новыми типами данных и операциями:  · расширяемые;  · нерасширяемые.

Язык c# и структура простой программы

Язык С# принадлежит к семейству С-подобных языков. К ним, также, относятся собственно язык С, языки С++ и Java, а также некоторые другие, рассмотрение которых выходит за рамки данного курса.

Язык С (начало 1970-х) является родоначальником этого семейства. Он был создан для написания системных программ, и на нем написана первая версия операционной системы Unix. До сих пор этот язык используется для написания небольших программ, особенно для операционных систем Unix/Linux. Этот язык отличается наличием большого количества операций низкого уровня, что сближает его с языком Ассемблера. В то же время, язык С обладает всеми управляющими конструкциями языков высокого уровня, а его компилятор формирует достаточно эффективный машинный код. Сам язык достаточно компактен и снабжен обширной библиотекой стандартных функций (С Run-Time), существенно расширяющей его возможности.

Тем не менее, современная технология разработки программных средств отдает предпочтение объектно-ориентированным языкам программирования, применение которых существенно облегчает разработку и отладку больших программных комплексов. В 1985 году на базе языка С был разработан язык С++, поддерживающий объектно-ориентированную технологию. На сегодняшний день язык C++ представляет собой один из наиболее совершенных инструментов создания прикладных и особенно системных программ. Применяя объектно-ориентированные возможности этого языка программирования, а также обширные библиотеки классов и шаблонов, программист может создавать весьма и весьма сложные приложения за приемлемое время.

Вместе с тем необходимо отметить, что освоение в полной мере всех возможностей языка C++ требует немалого времени. Составляя программы на С и C++, начинающий программист может много раз наступать на различные «грабли», прежде чем научится составлять программы с минимальным количеством ошибок. Используя гибкость языка C++, опытный программист сумеет реализовать свои идеи наилучшим образом, а начинающий рискует допустить трудно обнаруживаемые ошибки.

Язык программирования с названием Java был разработан компанией Sun Microsystems в 1995 году как объектно-ориентированное средство создания приложений, способных работать без перетрансляции на различных компьютерных платформах. С этой целью исходный текст программы преобразовывается в некоторый промежуточный байт-код, который затем интерпретируется специальной программой — виртуальной машиной Java.

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

Одним из недостатков Java, сдерживающих его распространение, служит относительно невысокое быстродействие. Этот недостаток возникает из-за того, что Java — интерпретируемый язык. В настоящее время Java пользуется популярностью, например, как средство создания активных серверных Web-приложений.