02.09.2020

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


Какие кодеры наиболее востребованы в нашей стране?

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

  • «Мне надо переустановить Windows. Я всю жизнь ждал того, кто сделает это для меня. А потом пойдем чинить тостер.»;
  • «О! Ты можешь помочь мне с лабораторной работой на VBA!»;
  • «За сколько сможешь сделать сайт для магазина моей мамы?»;
  • «Да ну! Скучная и дурацкая профессия. Я вот как-то пробовал разобраться с 1C…».

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

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

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

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

1. Front-end веб-разработчик

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

Где работает?

Что делает?

Разрабатывает динамику пользовательского интерфейса. Если в компании нет верстальщика, то еще и переводит PSD-шаблоны в HTML-код.

Технологии

  • HTML и UI фреймворки (Bootstrap, Foundation, Pure);
  • CSS и препроцессоры (SASS/LESS);
  • JavaScript + фреймворки/библиотеки на этом языке (Jquery, ReactJS, AngularJS, BackboneJS);
  • Утилиты для сборки проектов (Grunt, Gulp, Bower).

2. Back-end разработчик

Человек на плечи которого ложиться основное бремя по разработке веб-проекта. Он как бы строит фундамент, на который front-end разработчик прицепляет «декоративные элементы».

Где работает?

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

Что делает?

Разрабатывает “ядро” сайта или веб-приложения: код исполняемый на сервере и архитектуру базы данных.

Технологии

Один из нижеперечисленных языков и фреймворки/библиотеки для него:

  • Ruby;
  • Python;
  • Java;
  • JavaScript.
  • Базы данных MySQl/PostgreSQL/NoSQL.

3. Full-stack веб-разработчик

Человек, который может сделать сайт любой сложности «от и до».

Где работает?

Чаще всего в стартапах и небольших студиях веб-дизайна. В крупных компаниях содержится в команде наряду с front-end и back-end разработчиками, чтобы контролировать и координировать их работу.

Что делает?

Сайты и веб-приложения. Выполняет работу front-end и back-end разработчика одновременно.

См. списки двух предыдущих типов.

4. Разработчик игр

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

Где работает?

В игровых студиях.

Что делает?

Разрабатывает игры.

Какие технологии ему желательно знать?

  • С#/C++/Java;
  • Open GL или DirectX;
  • Один из игровых движков (Unity, Unreal Engine, Torque и другие).

5. Разработчик приложений под Android

Где работает?

Что делает?

Разрабатывает приложения под операционную систему Android.

Какие технологии ему желательно знать?

  • Java;
  • Android SDK;
  • OpenGL;
  • Android Studio.

6. Разработчик приложений под iOS

Где работает?

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

Что делает?

Разрабатывает приложения под операционную систему iOS.

Технологии

  • Objective-C;
  • XCode;
  • OpenGL;
  • Cocoa Touch;
  • CoreData;
  • CoreGraphics.

7. Программист 1C

Многие разработчики не считают язык, встроенный в 1C, языком программирования, а людей, которые пишут на нем, программистами. У них есть на это свои основания. Тем не менее, людей которые называют себя программистами 1C и вакансий для них очень много.

Где работает?

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

Что делает?

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

Технологии

  • «1С:Управление торговлей»;
  • «1С:Бухгалтерия»;
  • «1С:Зарплата и кадры»;
  • T-SQL.

8. Инженер-программист

Если одним из 7 предыдущих типов можно стать отучившись на курсах или путем самообразования, то инженеров-программистов выпускают только технические ВУЗы. Часто на этих должностях работают люди старше сорока лет, получившие образование в советское время.

Где работает?

На производстве или в научном учреждении.

Что делает?

Разрабатывает программы для управления самыми разными устройствами: от печи на хлебозаводе до робота-пылесоса.

Технологии

Один из нижеперечисленных языков:

  • Java;
  • Delphi (жил, жив и будет жить!);
  • Assembler.

Огромный багаж технических знаний, соответствующий отрасли в которой человек работает.

Если посмотреть объявления о найме программистов на российских сайтах, то 90% из них будут подходить под эти семь типов. На Западе рынок вакансии несколько разнообразнее. Кто интересуется, может зайти на Odesk и посмотреть, какая работа там предлагается.

С грустью замечаю, что 14-летние пакистанцы требуют там за html-верстку от 500 рублей в час.

А судить о том, какие языки сейчас наиболее популярны в мире можно по данным Tiobe Index . Этот рейтинг строится по числу запросов в поисковых системах с упоминанием разных языков программирования.

P.S. Напоследок, жизненный анекдот в тему.

Если бы водителей нанимали на работу так же как программистов:
Вакансия: водитель.
Требования: профессиональные навыки в управлении легковыми и грузовыми автомобилями, троллейбусами, трамваями, поездами метрополитена и фуникулёра, экскаваторами и бульдозерами, спецмашинами на гусеничном ходу, боевыми машинами пехоты и современными легкими/средними танками, находящимися на вооружении стран СНГ и НАТО. Навыки раллийного и экстремального вождения обязательны. Опыт управления болидами “Формулы 1″ - приветствуется. Знания и опыт ремонта поршневых и роторных двигателей, автоматических и ручных трансмиссий, систем зажигания, бортовых компьютеров, антиблокировочных систем, навигационных систем и автомобильных аудиосистем ведущих производителей. Опыт проведения кузовных и окрасочных работ - приветствуется. Претенденты должны иметь сертификаты Mercedes, BMW, General Motors, а также справки об участии в крупных международных соревнованиях не более, чем двухлетней давности.
Зарплата: определяется по результатам собеседования.

Операционные системы. Виды, требования, особенности, функции,.

Операционная система - это целый комплекс управляющих программ, вступающих в качестве интерфейса между компонентами персонального компьютера и обеспечивающих эффективное использование ресурсов ЭВМ. Операционная система обеспечивает взаимосвязь и управление всеми элементами компьютера и выполняемыми программами. Загрузка операционной системы производится при включении компьютера. К операционным системам нового поколения относятся: Windows XP, Windows NT, Windows Vista, операционные системы семейства OS\ 2, UNIX, LUNIX.

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

Требования к ОС:

Cовместимость – означает, что операционная система должна включать средства для выполнения приложений (программ) , подготовленных для других операционных систем,

Переносимость – означает обеспечение возможности переноса операционной системы с одной аппаратной платформы на другую,

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

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

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

Операционная система Windows - это современная и наиболее совершенная операционная система, хранится во внешней памяти компьютера, постоянно развивается и совершенствуется.

Особенности ОС Windows:

Оконный графический интерфейс. Окно – это основное поле действия программы,

Многозадачность – система обеспечивает работу с нескольким задачами одновременно с возможным переключением между ними,

Возможность использования длинных имен файлов и каталогов – до 255 символов,

Удобная и гибкая справочная система,

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

Устойчивость в работе, защищенность программы и информации,

Полная независимость от аппаратуры и др.

Функции ОС:

Обеспечение нескольких видов интерфейса (интерфейса командной строки, графического интерфейса),

Обеспечение взаимодействия между пользователем и программно – аппаратными средствами компьютера,

Обеспечение взаимодействия между разными видами программного обеспечения,

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

Обеспечение доступа к основным службам Интернета,

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

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

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

Языки программирования – это языки записи программ для ЭВМ. Первыми языками программирования были языки Алгол, Фортран, Бейсик, Pascal.

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

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

Языки программирования высокого уровня - это немашинные языки. Они более понятны нам, нежели компьютеру, однако это не мешает создавать на них практически все существующие программы для персональных компьютеров. Высокоуровневые языки программирования облегчают труд программистов, в них заложены важные функции, выполнение которых на языке низкого уровня потребовало бы тысячи строк кода. Самым массовым языком считается Basic, разработанный в 60-х годах в качестве учебного языка. Известны версии Visual BASIC 7 и Qbasic. Язык программирования Pascal разработал Н.Вирт – основоположник множества идей современного программирования в конце 70-х годов. В Паскале имеются возможности для создания крупных проектов, но он успешно применяется и для написания небольших программ повседневного использования. Delphi 2006 является на данный момент наиболее мощной визуальной средой Паскаля.

К языкам высокого уровня относятся:

Процедурно – ориентированные языки . Являются средством записи процедур или алгоритмов обработки информации для определенного класса задач. К ним относятся языки – Фортран, Бейсик, Си (С), Паскаль.

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

Объектно – ориентированные языки . Представляют собой развитие версии процедурных и проблемных языков. Программирование с помощью языков данной группы более простое и наглядное. К языкам этой группы относятся – Visual Basic, Delphi, Visual Fortran, C++ (C), Prolog.

Для операционной системы Windows фирма Microsoft создала в середине 1990-х годов семейство языков Visual Basic как базового средства разработки программного обеспечения для персональных компьютеров.

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

Развитие сети Интернет привело к появлению качественно новых языков - языков программирования для сетей: HTML, Java, Javascript, PHP, Perl

Основной и самый первый язык этого класса - это HTML, язык для форматирования документа. Подавляющее число Интернет –языков подчиняются его правилам и зависят от него.

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

Языки программирования баз данных

Реляционные базы данных – это наборы таблиц, состоящие из строк и столбцов. Каждая таблица имеет фиксированное число столбцов, задаваемых в ее описании, и переменное число строк, которое может меняться при работе с базой данных. От остальных языков программирования языки программирования баз данных отличаются своей задачей - управлять базами данных. Структурированный язык запросов SQL является единым языком работы с базами данных. Этот язык понимают любые системы управления базами данных (СУБД), но помимо этого во многих СУБД имеется так же свой уникальный язык, ориентированный именно на эту СУБД, и не переносимый на другие. Основными типами запросов в языке SQL являются: создание таблиц и баз данных, выборка информации из базы данных, редактирование информации в базе данных, администрирование баз данных.

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

Виды специализированных языков :

1.Языки для работы с базами данных :
а)Языки, входящие в состав промышленных клиент-серверных систем управления базами данных.(СУБД) (PL-SQL в СУБД Oracle, Transact-SQL в Microsoft SQL Server)
б)Языки являющиеся частью других видов СУБД (Visual FoxPro, Microsoft Access, Paradox и т.п.)

2. Языки предназначенные для web-программирования .
а) Языки, исполняющиеся на сервере, поддерживающего Web-сайт.(РНР, Perl, VBScript)
б) Языки, исполняющиеся на браузере (программе просмотра) клиента JavaScript, JScript, VBScript

3.Языки для математических расчетов

4.Языки для автоматизации работы определенных программных продуктов. (VBA в Microsoft Office)

6.Специализированные языки других видов.
К универсальным языкам можно отнести языки Visual C++, Visual C++.Net, Visual C#.Net, Visual J#.Net, Java, Delphi, Borland C#, Borland C++ Builder.
Хотя чаще всего специализированные языки происходят от универсальных языков например PHP, Perl и JаvаScript произошли от языка С++, VBScript и VBA произошли от языка Visual Bаsic"а, отличия между специализированными и универсальными языками очень значительны.
Специализированные языки, чаще всего используются для написания не очень больших программ, поэтому они оптимизированы на быстрое написание программ и уменьшение размера исходного кода, и в меньшей степени на уменьшение ошибок, использование объектно-ориентированное программирования и разделения кода на модули. А универсальные языки, как правило, используются для создания больших и очень больших проектов, поэтому в них все сделано, чтобы уменьшить количество ошибок и облегчить проектирования программ, облегчение разработки крупных программ.

Основное отличие специальных языков от универсальных:
1) В них меньше объектно-ориентированных средств и средств доступа технологий COM+, DCOM, CORBA, к функциям API операционных систем;
2)Меньше средств многопоточного программирования и распределенного программирования;
3)Используются только динамические типы (т.е. тип переменной определяется в зависимости от её значения, а не при объявление переменной), а не статические. Единственное исключение: в версии 9 языка Visual FoxPro можно использовать и статические типы переменных.
Структура современных языков программирования.
Универсальные языки (и языки производные от них)
I) Производные от языка С++
1. На основе С++:
1.1 Borland C++, Watcom C++ (устарели)
1.2 Microsoft Visual C++
1.3 Microsoft Visual C++ .Net
1.4 Borland C++ Builder
1.5 Borland C++ Builder .Net
1.6 JavaScript (специализированный язык, для разработки страниц в Интернете)

2. На основе Java :
2.1 Java и Java2
2.2 Microsoft Visual J++
2.3 Microsoft Visual J# .Net
3. На основе C#:
3.1 Microsoft Visual C# .Net
3.2 Borland C# Builder.Net
II) Производные от языка Pascal
1 Borland Pascal, Turbo Pascal (устарели)
2 Modula, Oberon, Component Pascal, Active Oberon, Zonnon (сейчас непопулярны)
3 Borland Delphi
4 Borland Delphi .Net
III) Производные от языка Basic
1 Microsoft Visual Basic
2 Visual Basic for Application
3 VBScript (специализированный язык, для разработки страниц в Интернете)
4 Microsoft Visual Basic .Net
Специализированные языки
I) Языки программирования, предназначенные для Интернета:
1. PHP
2. Perl
3. JavaScript
4. VBScript
II) Языки программирования в системах управления базами данных
1. В локальных и файл – серверных СУБД
1.1 Microsoft Visual FoxPro (В одноименной СУБД)
1.2 Visual Basic for Application (В СУБД Access)
2. Клиент – серверных промышленных СУБД
1.1 PL-SQL (В СУБД Oracle)
1.2 Transact – SQL (В СУБД Microsoft SQL Server)
Язык Java разработан фирмой Sun, а JavaScript разработан фирмой Nescafe,и по большому счету это два разных языка, но поскольку их синтаксис очень похож, будем считать, что язык JavaScript произошел от Java. Также существует диалект JavaScript, разработанный фирмой Microsoft, использующийся в Internet Explorer и называемый Jscript.
Очень многие программисты, возможно скажут, что Java вовсе не произошла от C++,и хотя возможно это и так, но если сравнивать их синтаксис то будет видно, что их синтаксис похож, поэтому можно их считать "родственниками”.
В СУБД Oracle можно кроме языка PL – SQL использовать также язык Java.

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

    процедурный,

    функциональный,

    логический,

    объектно-ориентированный.

3.1. Процедурный (алгоритмический) язык

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

Процедурные языки характеризуются следующими особенностями:

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

    малой пригодностью для символьных вычислений;

    отсутствием строгой математической основы;

    высокой эффективностью реализации па традиционных ЭВМ.

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

К процедурным языкам относятся: язык Ассемблера, С, Basic, Pascal.

3.2 Функциональный (аппликативный) язык

Первым таким языком был LISP.

Роль основной конструкции в функциональных (аппликативных) языках играет выражение. К выражениям относятся скалярные константы, структурированные объекты, функции, тела функций и вызовы функций.

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

    классы констант, которыми могут манипулировать функции;

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

    правила построения новых функций из базовых;

    правила формирования выражений на основе вызовов функций.

Перечисленные свойства характеризуют аппликативные языки как языки программирования очень высокого уровня.

3.3 Логический (реляционный) язык

Язык PROLOG был создан французским ученым А. Кольмероэ в 1973 году. В настоящее время известны и другие языки, однако наиболее развитым и распространенным языком логического программирования является именно Пролог. Языки логического программирования широко используются в системах искусственного интеллекта.

Языки логического программирования характеризуются:

    высоким уровнем;

    строгой ориентацией на символьные вычисления;

    возможностью инверсных вычислений, то есть переменные в процедурах не делятся на входные и выходные;

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

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

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

3.4 Объектно-ориентированный язык

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

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

В современных объектно-ориентированных (ОО) языках используются следующие методы:наследование,инкапсуляция,полиморфизм.

В некоторых объектно-ориентированных языках все методы классов являются виртуальными.

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

Часть языков (иногда называемых «чисто объектными» - Java или Ruby) целиком построена вокруг объектных средств - в них любые данные являются объектами, любой код - методом какого-либо класса и невозможно написать программу, в которой не использовались бы объекты. Другие языки («гибридные») включают ООП-подсистему в исходно процедурный язык. В них существует возможность программировать, не обращаясь к объектным средствам. Классические примеры - C++ и Delphi (Object Pascal).

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

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

Развитию программирования поспособствовала идея Джона Фон Ньюмана (англ. John Von Neumann), опубликованная в 1945 году, в которой он описал компьютер, где в памяти вместе с данными хранится и сама программа.

Языком программирования первого поколения считается машинный код. Машинный код состоит из инструкций, которые компьютер (процессор) может выполнить (а также данных, которые принадлежат этим инструкциям). Программируя на машинном коде, программист должен был писать свою программу в двоичном коде, так что бы процессор мог это понять и исполнить. В сущности, такое программирование требует хорошего знания и понимания аппаратного обеспечения, потому что в процессе программирования необходимо знать что процессор может сделать, где находятся устройства ввода-вывода (англ. I/O- Input-Output), а также как с ними необходимо общаться и сколько времени будет потрачено на ту или иную операцию. Таким образом, машинный код очень крепко связан с аппаратным обеспечением, на котором соответствующая программа будет работать. На сегодняшний день машинный код из компьютеров никуда не исчез, все действия на низком уровне (уровне аппаратного обеспечения) происходят до сих пор в машинном коде, т.е. на каком бы языке программирования не была написана программа в, конечном итоге она преобразуется в понятный аппаратному обеспечению машинный код.

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

MOV AL, 19

ADD AL, 4

OUT 2

Данный отрывок кода присваивает регистру AL значение 19(обычно значения представлены числами в шестнадцатеричной системе), прибавляет к значению регистра AL число 4 и после этого отправляет на выход номер 2. Написанная программа переводится из ассемблера в машинный код и после этого процессор может начать её выполнение.

Языки ассемблера и машинный код считаются языками низкого уровня.

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

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

FORTRAN (The IBM Mathematical FORmula TRANslating System) - язык программирования, разработанный в 1950-тых годах для математических вычислений и в научных целях.

COBOL (COmmon Business Oriented Language) - Объектно-ориентированный язык программирования, созданный в 1959году, в основном для написания программ удовлетворяющих бизнес нуждам.

BASIC (Beginner"s All-purpose Symbolic Instruction Code) - Язык, разработанный в 1963 году, который поначалу создавался для того, чтобы инженеры могли производить на компьютерах различные симуляции.

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

С - имя происходит от того, что этот язык в основном базировался на языке с именем B. Создавался для написания операционных систем (многие UNIX совместимые операционные системы написаны на этом языке), уже долгое время является одним из самых популярных языков программирования.

С++ - объектно-ориентированный С.

Java - язык программирования, разработанный на основе С++.

Visual Basic, Delphi, Python, C# - все являются языками третьего поколения. Многие языки программирования третьего поколения моложе (новее), чем некоторые языки четвёртого и пятого поколений.

Языки программирования четвертого поколения разработаны с целью упростить их изучение и использование. Эти языки, как правило, непроцедурные сосредоточены на единственном применении. Примером языка программирования четвертого поколения может служить SQL(Structured Query Language). Тут больше говориться «что делать» и меньше - «как делать». Языки пятого поколения созданы для разработки систем искусственного интеллекта и для решения связанных с этой темой проблем.

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

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

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

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

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

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

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

Интерпретируемые и компилируемые языки

До того, как компьютер сможет выполнить программу, написанную на языке высокого уровня, её приходится «переводить» на понятный компьютеру язык, т.е. машинный код. Этот процесс перевода называют трансляцией, а программу-переводчик - транслятором. Трансляторы делятся на два класса: компиляторы и интерпретаторы.

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

Интерпретация заключается в том, что программа в машинном коде (интерпретатор) записывает файл программы во внутреннюю память и начинает её построчно выполнять. Примером может служить старый язык BASIC.

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

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


© 2024
maccase.ru - Android. Бренды. Железо. Новости