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




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

1)Высокоуровневые языки - которые используют текст в виде коммант и Компилятор (Pascal, Delphi, C+, и др).

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

2)Низкоуровневые - прямые команды обработчику типа "CPU" (Assembler и похожие) Языки программирования низкого уровня: ориентированы на конкретный тип процессора и учитывают его особенности (разные типы процессоров имеют разные наборы команд); "низкий уровень" не означает плохой, операторы языка близки к машинному коду и ориентированы на конкретные команды процессора. Язык самого низкого уровня – язык ассемблера, который просто представляет каждую команду машинного кода, но не в виде чисел, а с помощью символьных условных обозначений (мнемоник). Однозначное преобразование одной машинной инструкции в одну команду ассемблера называется транслитерацией. Так как наборы инструкций для каждой модели процессора отличаются, конкретной компьютерной архитектуре соответствует свой язык ассемблера, и написанная на нем программа может быть использована только в этой среде.

Программирование. Языки высокого уровня.

машинные (computer language) – языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);

машинно-ориентированные (computer-oriented language) – предназначены для использования на тех ЭВМ, для которых эти языки разработаны (ассемблеры);

алгоритмические (algorithmic language) – языки, не зависящие от архитектуры компьютера и предназначенные для отражения структуры алгоритма (Паскаль, Фортран, Бейсик и др.);

процедурно-ориентированные – языки программирования с возможностью описания программы как совокупности процедур (подпрограмм);

проблемно-ориентированные – для решения задач из определенной профессиональной деятельности (Лисп);

Объектно-ориентированные языки – поддерживают понятия объектов, их свойств, методов обработки (Object Pascal, Delphi). Например, в Турбо Паскале объект – это особый тип данных, экземпляры этого объекта – переменные этого типа. Методами объекта являются связанные с ними функции и процедуры.

51. Алгоритмические языки - это специальное средство, предназначенное для записи алгоритмов в аналитическом виде. Алгоритмические языки близки к математическим выражениям и к естественным языкам. Каждый алгоритмический язык имеет свой словарь. Алгоритм, записанный на алгоритмическом языке, выполняется по строгим правилам этого конкретного языка. Операторные схемы алгоритмов. Суть этого способа описания алгоритма заключается в том, что каждый оператор обозначается буквой (например, А – арифметический оператор, Р – логический оператор и т.д.) Операторы записываются слева направо в последовательности их выполнения, причем, каждый оператор имеет индекс, указывающий порядковый номер оператора. Алгоритм записывается в одну строку в виде последовательности операторов. Псевдокод – система команд абстрактной машины. Этот способ записи алгоритма с помощью операторов близких к алгоритмическим языкам. По структуре выполнения алгоритмы и программы делятся на три вида: Линейные, Ветвящиеся, Циклические Примеры реализации компиляторов C++, Pascal, Delphi

52. Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд. Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются. Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется. Компилятор с точки зрения теории формальных языков выполняет две основные функции: 1) он является распознавателем для языка исходной программы. Получает на вход цепочку символов входного языка, проверяет ее принадлежность языку и выявляет правила, по которым эта цепочка построена; 2) он генерирует результирующую программу. На выходе создается цепочка выходного языка по определенным правилам. Распознавателем сгенерированной цепочки объектной программы будет выступать вычислительная система.

Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой. После того, как программа откомпилирована, ни сама исходная программа, ни компилятор более не нужны. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном запуске программы. Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять. Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию — в зависимости от того, для каких целей он создавался. Например, Паскаль обычно используется для решения довольно сложных задач, в которых важна скорость работы программ. Поэтому данный язык обычно реализуется с помощью компилятора. С другой стороны, Бейсик создавался как язык для начинающих программистов, для которых построчное выполнение программы имеет неоспоримые преимущества. Примеры реализации интерпретаторов Java, SQL, PHP

Стандартной библиотекой языка Си (также известная как libc, crt) называется часть стандарта ANSI C, посвященная заголовочным файлам и библиотечным подпрограммам. Является описанием реализации общих операций, таких как обработка ввода/вывода и строк, в языке программирования Си. Стандартная библиотека языка Си — это описание программного интерфейса, а не настоящая библиотека, пригодная для использования в процессе компиляции. Имя и характеристики каждой функции указываются в файле, именуемым заголовочным файлом, но текущая реализация функций описана отдельно в библиотечном файле. Наименование и возможности заголовочных файлов становятся общими, но организация библиотек по-прежнему остается разнотипной. Стандартная библиотека обычно поставляется вместе с компилятором. Так как компиляторы языка Си часто обеспечивают расширенную функциональность, не определенную стандартом ANSI C, стандартная библиотека одного компилятора несовместима со стандартными библиотеками других компиляторов.

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

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

56. Линейное программирование (далее ЛП) –область математического программирования, посвященная теории и методам решения экстремальных задач, характеризующихся линейной зависимостью между переменными. Основные задачи ЛП: - Задача оптимизации межотраслевых потоков. -Транспортные задачи. -Подробнее поговорим про задачу об оптимальном выпуске продукции. Требуется составить такой план выпуска продукции, который был бы технологически осуществлен по имеющимся ресурсам всех видов, удовлетворял бы задаваемым ограничениям на выпуске каждого вида продукции и в то же время приносил наибольшую прибыль предприятию. Математическая модель любой задачи линейного программирования включает в себя: · максимум или минимум целевой функции (критерий оптимальности); · систему ограничений в форме линейных уравнений и неравенств; · требование неотрицательности переменных.

57.Структу́рное программи́рование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.

Особенности: 1.Любая программа представляет собой структуру, построенную из трёх типов базовых конструкций: последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы; ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия; цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие. 2. В программе базовые конструкции могут быть вложены друг в друга произвольным образом, но никаких других средств управления последовательностью выполнения операций не предусматривается. 3. Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде т. н. подпрограмм (процедур или функций). В этом случае в тексте основной программы, вместо помещённого в подпрограмму фрагмента, вставляется инструкция вызова подпрограммы. При выполнении такой инструкции выполняется вызванная подпрограмма, после чего исполнение программы продолжается с инструкции, следующей за командой вызова подпрограммы. 4.Разработка программы ведётся пошагово, методом «сверху вниз».

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

Информационно-поисковый язык (ИПЯ) — искусственный язык, представляющий совокупность средств для описания формальной и содержательной структуры для поиска (путем индексирования) по запросу пользователя. В ИПЯ можно выделить алфавит, лексику и грамматику. Алфавит — совокупность определенных символов для записи слов и выражений. Во многих языках для этого используются символы естественного языка. Лексика — совокупность всех использующихся в языке слов — лексических единиц. Грамматика — правила составления выражений. Грамматика во многих ИПЯ формальна, а в некоторых вообще отсутствует. Типы и виды: 1.Контролируемые — языки, словарный состав которых задается и контролируется с помощью словарей и таблиц. К ним относят различные классификации. 1)Язык предметных рубрик. На основе иерархической классификации строят систематические каталоги. На основе языка предметных рубрик строят предметные каталоги. Алфавитные каталоги — ручной поиск. 2)Дескрипторные ИПЯ, а также язык ключевых слов — автоматический поиск. 2.Неконтролируемые — лексика не задается словарем, а строится на основе выбора терминов естественного языка. Порядок записи лексических единиц: 1.Некоординируемые языки — не допускающие координации своих лексических единиц (нет связи между ними) ни в процессе индексирования, ни в процессе поиска. (система расстановки книг в библиотечном фонде, по инвентарным номерам). 2.Координируемые ИПЯ — языки, в которых лексические единицы связывается, координируются между собой или в процессе индексирования или в процессе использования. 1)Предкоординируемые — связи между лексическими единицами устанавливаются перед поиском. 2)Посткоординируемые — когда связи между лексическими единицами устанавливаются только при поиске.

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

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

Примеры языков разметки:

Языки разметки используются везде, где требуется вывод форматированного текста: в типографии (SGML, TeX, PostScript, PDF), пользовательских интерфейсах компьютеров (Microsoft Word, OpenOffice, troff), Всемирной Сети (HTML, XHTML, XML, WML, VML, PGML, SVG, XBRL).

Для написания исходных текстов Википедии, её участники используют особый язык разметки (см. Википедия:Как править статьи), а для отображения сложных математических формул — язык TeX.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-07-22 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: