Какие бывают виды программистов? Виды деятельности программиста. Компьютерные языки программирования: виды, описание, применение и отзывы Основные виды языков программирования

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

Web-разработчик

Самым востребованным на 2017 год видом профессии «программист» является веб-разработчик. К этой категории относятся специалисты по созданию сайтов.

Условно веб-мастера делятся на три группы:

  • разработчик Frontend;
  • Backend-программист;
  • Fullstack-девелопер.

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

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

Кто такой фронтенд-разработчик?

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

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

Инструменты фронтенд-разработчика

Писать код на HTML, CSS и JavaScript не достаточно. Чтобы оставаться конкурентоспособным на рынке труда, Frontend-разработчик должен знать следующее:

  1. jQuery. Библиотека JavaScript с коллекцией плагинов и расширений. Вместо того чтобы писать код с нуля, jQuery позволяет добавлять и настраивать готовые элементы. Например, автозаполнение форм, слайд-панель, таймер, связанная анимация.
  2. Фреймворки Bootstrap, Foundation, Backbone, AngularJS и EmberJS. Это программные оболочки повышающие производительность ресурса. Предоставляют готовый дизайн и существенно облегчают жизнь разработчика.
  3. Препроцессоры SASS и LESS. Добавляют CSS функциональности, обрабатывает код, превращая его в отформатированный и кросс-браузерный CSS.
  4. Популярные CMS - адаптивная верстка и кросс-платформенность.

Обязанности и виды деятельности программиста включают отладку и тестирование клиентской части. Веб-инженер проверяет отдельные блоки исходного кода на ошибки. Тестирует интерфейс, узнает, насколько пользователям будет удобно взаимодействовать с приложением. Также фронтенд-специалист должен разбираться в азах серверного программирования, технологиях Node.js, помимо JS писать на PHP и SQL.

Зарплата и перспективы

Средний оклад мастера составляет 66 тысяч 410 рублей в месяц. В США эта сумма вырастает до 102 тысяч долларов в год. Высокие зарплаты, легкость языка разметки и написания скриптов привлекает начинающих кодеров к фронтенд-разработке. Освоив JS, большинство из них переходит к серверным языкам. Самые талантливые учат высокоуровневые C и Java, постепенно осваивают геймдев, создание приложений и другие виды информационной деятельности программиста.

Программист серверной части

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

Программист серверной части - это следующая эволюционная ступень после фронтенд-разработчика. Его задача заставить сервер, приложение и БД взаимодействовать. Пишет на серверных языках PHP, Ruby, Python, Java и.Net. В качестве инструментов для работы с данными использует MySQL, Oracle и SQL Server. В описаниях вакансии работодатели часто указывают дополнительные требования:

  • знание фреймворков PHP: Zend, Symfony и CakePHP;
  • опыт работы с программным обеспечением контроля версий SVN, CVS или Git;
  • навыки работы с операционными системами Linux, Unix, MacOS X и Windows Server.

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

Разработчик Fullstack

Это вид работы программиста, включающий в себя все этапы создания веб-приложения. Fullstack developer -мастер на все руки, пишущий одновременно клиентскую и серверную часть. Первые упоминания о профессии появились в 2010 году после статьи сотрудника Facebook Карлоса Буэно. С этого момента компания нанимает работников исключительно уровня Fullstack.

Обязанности универсального веб-программиста:

  1. Серверное администрирование. Подключение через терминал к удаленным серверам без GUI. Управление пользовательскими группами, брандмауэрами, программами Apache и Nginx. Фулстак-программист должен все знать об облачном хостинге на платформах Heroku, Google Cloud, Azure, AWS и любых других.
  2. Создание бэкенда и базы данных. Специалист должен разбираться в базах данных MySQL, PostgreSQL, а также БД noSQL: MongoDB, Redis или Cassandra. Иметь представление о графовых СУБД, таких как Neo4j.
  3. Фронтенд-разработка и дизайн. Помимо стандартных обязанностей, верстки и подключения JS, Fullstack-мастер проектирует макет в редакторах Photoshop или Illustrator.

Фулстак-разработчики - это специалисты уровня Senior Developer. За ними охотятся хедхантеры и у них самые высокие оклады. В США зарплата Fullstack Developer начинается от 70-80 тысяч долларов и от 25-30 тысяч долларов в странах Восточной Европы. На иностранных биржах фриланса, например Upwork, один час работы Fullstack-разработчика оценивается в 30$ и выше.

Специалист по созданию и разработке компьютерных игр

Разработка компьютерных игр - одна из самых быстроразвивающихся сфер ИТ-технологий. По данным аналитического агентства NewZoo объем рынка видеоигр с каждым годом увеличивается на 9%. Если в 2016 году он составил почти 100 миллиардов долларов, то к 2018 году эта сумма увеличится до 112.5 миллиардов. Поэтому «инженер видеоигр» - это перспективная и высокооплачиваемая должность.

Инженер, или Game-разработчик - общее название категории специалистов, задействованных в процессе создания игры. Главная задача - превратить идею в программный код и заставить все элементы взаимодействовать. 90% рабочего времени программисты пишут и отлаживают алгоритмы на языке C++, Visual Basic, Java и MEL.

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

Какие бывают виды программистов игр?

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

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

За свой труд на благо игровой индустрии данный вид программистов получает зарплату от 60 тысяч рублей. Доход инди-разработчиков точно просчитать сложно. Есть случаи, когда успешные проекты приносили миллионы буквально за неделю. Например, игра-хит Punch Club, Angry Birds и всем известная «Майнкрафт». Существуют, конечно, провальные задумки наподобие Scroll Ninja, не оправдавших ожидания создателей.

Системный программист

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

Разрабатывается программное обеспечение под различные операционные системы, включая серверные Unix и Windows Server, а также мобильные платформы. Код пишется на языках «Си», за редким исключением Assembler. Основная задача системного инженера заключается в установке, настройке, тестировании ОС и всех ее компонентов

Различные виды профессии «программист» требуют от специалиста определенных навыков, опыта работы и уровня владения компьютерными языками. Но труд именно системных инженеров является самым сложным. Для создания ПО нужны углубленные знания информатики, алгебры, математики и построения алгоритмов.

Системный программист необходим в любой сфере ИТ, включая автоматизацию процессов производства и мониторинг безопасности. В США за труд специалиста готовы платить от 87 до 104 тысяч долларов. В Англии 57 тысяч фунтов стерлингов, в России 90 тысяч рублей.

Инженер прикладного программного обеспечения

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

Работа прикладного инженера заключается в написании кода, его последующей компиляции, отладке и тестировании. Иногда специалист обновляет или вносит изменения в уже существующее ПО. Для программирования использует высокоуровневые языки Java, C#, C++, Python, PHP. Прикладные программисты редко трудятся в одиночку. В основном, они являются участниками стартапов, или входят в штат сотрудников компании, занимающейся разработкой компьютерного софта.

«Программист» - интересная и разнообразная профессия с множеством направлений и специализаций. Одни делают виджеты для сайтов и проектируют API, другие пишут код для серверов или корпят над графикой Disciples III. Каждый, кто любит программировать, может реализовать себя в веб-разработке, стать именитым создателем игр или писать программы для спутников НАСА.

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

Разработка web-приложений

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

Web-программирование можно разделить на backend (написание серверных скриптов - PHP, Python, Ruby) и frontend (разработка юзерского интерфейса - Javascript, HTML, CSS).

Разработка desktop-приложений

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

Разработка серверных приложений

Это различные игровые сервера (ваша любимая Дотка, CS: GO), IM-сервисы (серверная часть Skype, ICQ, MSN), банковские базы данных.

Разработка мобильных приложений

Множество Java-приложений. VK, Viber, Яндекс.Карты, переводчики, электронные читалки.

Программирование встраиваемых систем

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

Системное программирование

Написание различных драйверов для оборудования, программирования «ядра» операционных систем. Кстати, создание компиляторов и интерпретаторов для языков программирования относятся сюда же.

Разработка игр

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

Олимпиадное программирование и решение задач

Программирование на различных «непрактичных» и не распространенных языках (Pascal, Delphi) для решения каких-то оригинальных задач, требующих нестандартного подхода, смекалки и IQ выше 160.

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

«1С: Предприятие». Вся бухгалтерия в России завязана на этом продукте. Но недостаточно знать лишь сам язык, важно понимать основы бухгалтерского учета. Плюс в том, что работы очень много, и без хлеба вы не останетесь.

Программирование баз данных

Серьезное направление. Хотите разрабатывать базы данных, способных хранить миллиарды строк информации о всех пользователях VKontakte или Facebook и при этом не тормозить - вам сюда.

Science

Наука и этим все сказано. Нейронные сети, моделирование структуры ДНК, запуск спутников, моделирование Большого Взрыва.

Кстати, недавно на сайте NASA была опубликована новость о поиске программиста на «древнем» языке Fortran, которому уже более 60 лет. Требовался программист для разработки программ по управлению автоматическими зондами Вояджер-1 и Вояджер-2, программное обеспечение для которых было написано на Ассемблере, Фортране и языке COBOL еще в 1970-х годах. Никогда не знаешь, какие знания могут пригодиться.

Я не знаю, как обстоят дела в образовании сейчас, но 10-15 лет назад ни в школе, ни в университете никто всерьёз не объяснял, что программирование имеет свои типы, каждый из которых требует особого типа мышления. Не то чтобы это покалечило чьи-то судьбы, но изучение программных дисциплин могло бы проходить гораздо быстрее, если на стадии закладки фундамента мы представили многообразие языков и подходов, а не зомбически учили C++ в его консольных проявления.

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

Типы программирования

Условимся сразу: типов будет шесть. Это достаточно подробное деление. Обычно выделяют 3-4, но так как перед нами стоит задача выбора пути для новичков, оно вполне оправдано.

Процедурное программирование , оно же императивное.

Оно ставит задачу создания кода на языке, понятном используемой машине. Самый известный случай - машина Тьюринга, из известных языков программирования - С/C++, Ада, Паскаль, Go. Задачи здесь решаются планомерно: сначала объявляется объект, потом он определяется и затем выполняется с ним действие:

var
S: String;

S:= ‘Hello!’;

Декларативное программирование .

В процедурном случае вектор оптимизации языка направлен от машинного уровня к языку пользователя путем использования базовых принципов ООП, классов, методов и пр.. Здесь же во главе угла стоит непосредственно задача, а способ её исполнения второстепенен. Яркий пример - язык разметки HTML. Если вы хотите разместить кнопку, вам формально не надо создавать объект и присваивать ему атрибуты:

Функциональное программирование .

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

Функциональное программирование лишено этого недостатка: здесь вы оперируете функциями - исходными, приращения и результативной, - но не конкретными значениями. Среди популярных представителей - Lisp, Clojure, Haskell. Функциональное программирование считается сложным и избыточным для большинства прикладных задач. Отсюда невысокий спрос на специалистов, но от этого же высокие зарплаты и действительно интересная работа.

Логическое программирование .

Как следует из названия, оно оперирует простой математической логикой. Яркие представители - Planner и Prolog. Достаточно ограниченный набор действий может быть реально полезен для создания простейшего искусственного интеллекта или разминки мозгов, но в реальной жизни логическое программирование самостоятельно используется редко.

Динамическое программирование .

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

Графическое программирование , оно же визуальное.

Оно предлагает разработчику работать с графическими изображениями, а не текстом. Выражаться это может по-разному - есть специальные языки, вроде Scratch или BluePrint, есть языки схем или диаграмм (LD или FBD), есть просто разделы программирования, связанные со взаимодействием с формами и графикой. В последнем случае это может быть любой язык, визуализация осуществляется средствами разработки (Borland Delphi/C++, Visual Studio, Adobe Dreamweaver и пр.). Такое графическое программирование в чистом виде встречается крайне редко, без понимания языка и структуры кода создать что-то серьезное невозможно.

Остальное

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

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

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

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

Для популярных языков программирования (Си, Си++, Паскаль, Бейсик, Фортран и др.) имеется множество систем программирования, позволяющих создавать программы, работающие в среде DOS, Windows и др. В последнее время стали появляться системы программирования на языке Java, они позволяют создавать программы, вызываемые при просмотре Web-страниц в глобальной электронной сети Internet.

Особым классом систем программирования являются системы для создания приложений типа клиент-сервер. Эти системы позволяют быстро создавать информационные системы для подразделений и даже крупных предприятий. В них содержатся средства для создания пользовательского интерфейса, описания процедур обработки данных, заготовки для выполнения типовых действий по обработке данных и т.д. Эти системы, как правило, позволяют работать с самыми различными СУБД - Oracle, Microsoft SQL Server и др.

Виды языков программирования

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

· Язык высокого уровня - Язык программирования, средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора. К языкам высокого уровня относят Фортран, ПЛ/1 , Бейсик, Паскаль, Си, Ада и др.



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

Различают также следующие виды языков программирования:

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

· Неалгоритмический язык - Язык программирования, тексты которого не содержат указаний на порядок выполнения операций и служат лишь исходным материалом для синтеза алгоритма решения задачи;

· Формальный язык – Язык программирования, построенный по правилам некоторого логического исчисления или формальной грамматики , представляющей собой систему правил построения в заданном алфавите конечных знаковых последовательностей, множество которых образует формальный язык;

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

· Машинный (абсолютный) язык, язык ЭВМ - Язык программирования, предназначенный для представления программ в форме, обеспечивающей возможность их выполнения техническими средствами;

· Машинозависимый (машинно-ориентированный) язык, машинозависимый язык программирования - Язык программирования, учитывающий структуру и характеристики ЭВМ определенного типа или конкретной ЭВМ;

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

· Символический язык, язык символического кодирования - Язык программирования, ориентированный на конкретные ЭВМ и основанный на кодировании машинных операций при помощи определенного набора символов;

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

· Графический язык - Язык, предназначенный для написания программ машинной графики и пользования ими.

· Базовый язык – Машинный язык, общий для семейства ЭВМ (язык программирования в СУБД с автономным языком).

· Общий язык - Машинный язык, общий для группы ЭВМ и используемых ими внешних устройств;

· Эталонный язык - Язык, являющийся основой для всех его конкретных версий, являющихся вариантами адаптации эталонного языка к определенным условиям применения и назначения;

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

· Декларативный (непроцедурный) язык - Язык программирования, который позволяет задавать связи и отношения между объектами и величинами, но не определяет последовательность выполнения действий (например, языки Пролог, QBE);

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

· Язык функционального программирования, функциональный язык - Декларативный язык программирования, основанный на понятии функций, которые задают зависимость, но не определяют порядок вычислений.

· Специализированный язык - Язык программирования, ориентированный на решение определенного круга задач;

· Язык описания страниц - Специализированный язык, предназначенный для печатающих устройств. Предусматривает возможность использования изображений в формате, независимом от параметров устройства отображения. Наиболее известным языком такого типа является PostScript.

· Автономный язык - Специализированный язык высокого уровня, в замкнутых СУБД (" СУБД с автономным языком ");

· Язык конструирования интерактивных технологий - В СУБД - язык, предназначенный для описания технологических процессов обработки данных с учетом разделения характера операций по их типам, а также обеспечения диалога с администратором системы;

· Язык манипулирования данными, ЯМД - В СУБД - язык, предназначенный для обращения к базе данных и выполнения поиска, чтения и модификации ее записей;

· Язык обработки списков - Специализированный язык, предназначенный для описания процессов обработки данных, представленных в виде списков объектов;

· Язык описания данных - Язык, предназначенный для описания "концептуальной схемы” базы данных;

· Язык описания хранения данных - Язык, предназначенный для описания физической структуры (схемы) базы данных;

· Язык описания страниц - Система для кодировки документов, которая позволяет точно описать ее внешний вид после подготовки к выводу на печать или на дисплей. Примером использования такого языка служит PDF (Portable Document Format), разработанный Adobe для хранения и представления изображений страниц.

· Язык представления знаний - Декларативный или декларативно-процедурный язык, предназначенный для представления знаний в памяти ЭВМ (например, языки Лисп и Пролог);

· Язык публикаций - Язык, используемый для публикации алгоритмов и программ;

· Язык спецификаций - Декларативный язык для задания спецификаций программ;

· Проблемно-ориентированный язык - Язык программирования, предназначенный для решения определенного класса задач (проблем);

· Процедурный (процедурно-ориентированный) язык - Проблемно-ориентированный язык, который облегчает выражение процедуры, как точного алгоритма;

· Язык реального времени - Язык, используемый для программирования задач, в которых критическим является время реакции ЭВМ на сигналы, требующие от нее немедленных действий (например, язык Ада);

· Язык управления пакетом - Набор команд, директив, квалификаторов и правил их использования для управления пакетной обработкой данных;

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

· Общесетевой командный язык - Стандартный в рамках вычислительной сети язык диалогового (интерактивного) поиска данных, предназначенный для унификации работы пользователей с неоднородными базами данных, управляемых различными СУБД;

· Системный язык - Язык общения оператора ЭВМ с вычислительной системой, представляющий собой совокупность команд оператора и сообщений системы;

· Язык общего назначения, универсальный язык - Язык программирования, ориентированный на решение задач практически из любой области и объединяющий на единой методической основе наиболее существенные свойства и средства современных машино- и проблемноориентированных языков программирования (например, язык ассемблера, ПЛ/1 и др.);

· Язык ориентированный на пользователя - Слабоформализованный язык программирования, близкий к естественному языку;

· Язык меню - Язык диалога пользователя с системой, основанный на использовании меню.

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

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

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

Языки программирования низкого уровня

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

Рис.1. Пример машинного кода и представления его на ассемблере

Трансляторы делятся на:

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

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

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

Преимущества

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

Недостатки

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

    результирующая программа не может быть перенесена на компьютер или устройство с другим типом процессора;

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

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

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



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: