3.1.4.7 Сравнение с микроконтроллерами
Решения на базе микроконтроллеров будут эффективней, в сравнении с
ПЛК, там, где выпускаются сотни или тысячи устройств (повышенная цена
разработки окупается за счет большого объема продаж) и там, где конечному
пользователю не потребуется изменять алгоритмы управления. Примером
могут служить системы автомобильной автоматики, миллионы устройств
выпускаются
ежегодно
и
только
их
производители
занимаются
программированием
контроллеров.
Также
ПЛК
могут
оказаться
неприменимыми в тех областях, где предъявляются повышенные требования к
вычислительным ресурсам. В управлении химическим производством часто
требуется реализация сложных алгоритмов управления, с которыми не
справляются даже самые производительные ПЛК. Высокая скорость и точность
вычислений требуется в бортовых системах авиации и военной техники.
3.2 Языки программирования
3.2.1 Основные определения
Язык – система знаков, сопряженная с правилами их связывания и
служащая коммуникативным целям. Язык – средство, позволяющее передавать
человеческие мысли и образы. Формальный язык позволяет однозначно
воспринимать описание, неформальный допускает неоднозначности.
135
Язык программирования – язык, позволяющий выразить человеческие
мысли и образы в формальном виде, однозначно воспринимаемом
вычислительным устройством в рамках конкретной модели вычислений.
К составным частям языка можно отнести: лексику, синтаксис и
семантику.
Лексика – описание элементов языка (его элементарных конструкций).
Например, лексемами языка Си являются: for, if, int, char, while,+, -,...
Синтаксис – совокупность правил написания языковых элементов
(лексем).
Семантика – смысловое наполнение языковых конструкций, связь между
элементами языка и их значением.
Существуют языки, в которых лексемы и синтаксис очень близки, а
семантика – различна. Обычно так происходит, если в основе языков лежат
различные модели вычислений.
Существует несколько подходов к определению семантики языков
программирования. Наиболее широко распространены разновидности
следующих трёх: операционного, денотационного (математического) и
деривационного (аксиоматического). При описании семантики в рамках
операционного
подхода
обычно
исполнение
конструкций
языка
программирования интерпретируется с помощью некоторой воображаемой
(абстрактной) ЭВМ. Деривационная семантика описывает последствия
выполнения конструкций языка с помощью языка логики и задания пред- и
постусловий. Денотационная семантика оперирует понятиями, типичными для
математики – множества, соответствия, а также суждения, утверждения и др.
Статическая типизация – приём, широко используемый в языках
программирования, при котором переменная, параметр подпрограммы,
возвращаемое значение функции связывается с типом в момент объявления и
тип не может быть изменён позже (переменная или параметр будут принимать,
а функция – возвращать значения только этого типа). Примеры статически
типизированных языков – Ада, Си++, Паскаль.
Динамическая типизация – приём, широко используемый в языках
программирования и языках спецификации, при котором переменная
связывается с типом в момент присваивания значения, а не в момент
объявления переменной. Таким образом, в различных участках программы одна
и та же переменная может принимать значения разных типов. Примеры языков,
где есть динамическая типизация – Smalltalk Python, Ruby, PHP, Perl,
JavaScript, Object Pascal, Lisp, xBase.
136
Do'stlaringiz bilan baham: |