Нетрадиционные языки для нетрадиционных суперкомпьютеров. Расширения файлов для программных кодов: cpp - это что? Обзор современных языков программирования

Жаропонижающие средства для детей назначаются педиатром. Но бывают ситуации неотложной помощи при лихорадке, когда ребенку нужно дать лекарство немедленно. Тогда родители берут на себя ответственность и применяют жаропонижающие препараты. Что разрешено давать детям грудного возраста? Чем можно сбить температуру у детей постарше? Какие лекарства самые безопасные?

Кроме использования комментариев для получения параллельной программы, часто идут на расширение существующих языков программирования. Вводятся дополнительные операторы и новые элементы описания переменных, позво­ляющие пользователю явно задавать параллельную структуру программы и в некоторых случаях управлять исполнением параллельной программы. Так язык High Performance Fortran (HPF), помимо традиционных операторов Фортрана и системы спецкомментариев, содержит новый оператор FORALL, введенный для описания параллельных циклов программы. Наиболее интересной чертой HPF представляется многоуровневое отображение массив - массив-шаблон - вирту­альный процессорный массив - физические процессоры, позволяющее макси­мально гибко отображать пользовательские данные на реальный компьютер.

Другим примером служит язык mpC, разработанный в Институте системного программирования РАН как расширение ANSI С. Основное назначение mpC - создание эффективных параллельных программ для неоднородных вычисли­тельных систем. Пользователь может задать топологию сети, распределение данных и вычислений и необходимые пересылки данных. Посылка сообщений организована с использованием интерфейса MPI.

DVM-система предназначена для создания переносимых и эффективных вы­числительных приложений на языках C-DVM и Fortran-DVM для параллельных компьютеров с различной архитектурой. Аббревиатура DVM соответствует двум понятиям: Distributed Virtual Memory и Distributed Virtual Machine. Первое отражает наличие единого адресного пространства. Второе отражает использо­вание виртуальных машин для двухступенчатой схемы отображения данных и вычислений на реальную параллельную машину. Модель программирования предполагает задание DVM-указаний с помощью спецкомментариев, а значит, один вариант программы для последовательного и параллельного исполнения. Поддерживаются три группы директив: директивы распределения данных, ди­рективы распределения вычислений и спецификации удаленных данных. Ком­пилятор переводит программу на язык Фортран или Си, используя для органи­зации межпроцессорного взаимодействия одну из существующих технологий параллельного программирования (MPI, PVM, Router). В систему DVM также входят библиотека поддержки LIB-DVM, DVM-отладчик, предсказатель вы­полнения DVM-программ, анализатор производительности DVM-программ. Система разработана в Институте прикладной математики им. М.В.Келдыша РАН.



Специальные языки программирования

Если нужно точнее отразить либо специфику архитектуры параллельных сис­тем, либо свойства какого-то класса задач некоторой предметной области, то используют специальные языки параллельного программирования. Для про­граммирования транспьютерных систем был создан язык Occam, для програм­мирования потоковых машин был спроектирован язык однократного присваи­вания Sisal. Очень интересной и оригинальной разработкой является деклара­тивный язык НОРМА, созданный под руководством И.Б.Задыхайло в Институ­те прикладной математики им. М.В.Келдыша РАН для описания решения вы­числительных задач сеточными методами. Высокий уровень абстракции языка позволяет описывать задачи в нотации, близкой к исходной постановке про­блемы математиком, что условно авторы языка называют программированием без программиста. Язык с однократным присваиванием, не содержит традици­онных конструкций языков программирования, фиксирующих порядок вычис­ления и тем самым скрывающих естественный параллелизм алгоритма.

Библиотеки и интерфейсы, поддерживающие взаимодейст­вие параллельных процессов

С появлением массивно-параллельных компьютеров широкое распространение получили библиотеки и интерфейсы, поддерживающие взаимодействие па­раллельных процессов. Типичным представителем данного направления являет­ся интерфейс Message Passing Interface (MPI), реализация которого есть прак­тически на каждой параллельной платформе, начиная от векторно-конвейерных супер-ЭВМ до кластеров и сетей персональных компьютеров. Программист сам явно определяет какие параллельные процессы приложения в каком месте про­граммы и с какими процессами должны либо обмениваться данными, либо син­хронизировать свою работу. Обычно адресные пространства параллельных процессов различны. В частности, такой идеологии следуют MPI и PVM. В других технологиях, например Shmem, допускается использование как локаль­ных (private) переменных, так и общих (shared) переменных, доступных всем процессам приложения, и реализуется схема работы над общей памятью с по­мощью операций типа Put/Get.

Несколько особняком стоит система Linda, добавляющая в любой последова­тельный язык лишь четыре дополнительные функции in, out, read и eval, что и позволяет создавать параллельные программы. К сожалению, простота зало­женной идеи оборачивается большими проблемами в реализации, что делает данную красивую технологию скорее объектом академического интереса, чем практическим инструментом.

Параллельные предметные библиотеки

Часто на практике прикладные программисты вообще не используют никаких явных параллельных конструкций, обращаясь в критических по времени счета фрагментах к подпрограммам и функциям параллельных предметных библио­тек. Весь параллелизм и вся оптимизация спрятаны в вызовах, а пользователю остается лишь написать внешнюю часть своей программы и грамотно восполь­зоваться стандартными блоками. Примерами подобных библиотек являются Lapack, ScaLapack, Cray Scientific Library, HP Mathematical Library, PETSc и многие другие.

Некоторые параллельные предметные библиотеки

BLAS и LAPACK - библиотеки, реализующие базовые операции линейной алгебры, такие как перемножение матриц, умножение матрицы на вектор и т.д.

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

FFTW, DFFTPack - быстрое преобразование Фурье.

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

Специализированные пакеты и программные комплексы

И, наконец, последнее направление, о котором стоит сказать, это использование специализированныю пакетов и программныю комплексов. Как правило, в этом случае пользователю вообще не приходится программировать. Основная зада­ча - это правильно указать все необходимые входные данные и правильно воспользоваться функциональностью пакета. Так, многие химики для выполне­ния квантово-химических расчетов на параллельных компьютерах пользуются пакетом GAMESS, не задумываясь о том, каким образом реализована парал­лельная обработка данных в самом пакете.

Компьютерные программы часто описываются как “наборы инструкций”, и компьютерные языки воспринимаются многими только как словарный и синтаксический способ обеспечения этих инструкций.

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

Но реальность программирования гораздо сложнее.

Программирование сегодня

Это странно, но большинство действительно “глобальных” идей в компьютерном программировании были разработаны еще в 1950-х и 60-х годах. С тех пор появилось много новых языков, но ни один из них не реализует действительно нового подхода к логике и вычислениям.

Разработка новых языков программирования в течение последних нескольких десятилетий была основана на опыте разработчиков. Это означает, что появился код, который стало проще писать (движущая сила Ruby) и проще читать (Python), и делать определенные типы логических структур и способы решения проблем более интуитивными.

Некоторые языки были разработаны для решения конкретных проблем в программировании (например PHP и SASS), чтобы управлять определенными типами систем (), или для работы в определенной среде или на определенной платформе (Java и JavaScript). Некоторые языки были разработаны специально для того, чтобы помочь новичкам научиться программировать (классическими примерами являются BASIC и Scratch).

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

Относительно недавнее развитие включает в себя такое понятие, как SOA (Service Oriented Architecture- сервисо-ориентированная архитектура ) и MVC (Model-View-Controller), а также фреймворки, такие как , позволяющие программистам легко работать в рамках этих парадигм.

Список языков программирования

Пополняющийся список популярных языков программирования, разметок и протоколов. Ссылки на описание каждого из них:

Кодировка ASCII

  • Кодировка символов является одним из основных компьютерных и Интернет аспектов. ASCII – это первая, широко использованная система кодировки символов. Она была вытеснена UTF-8, но ASCII по-прежнему является основой для подавляющего большинства символов в Интернете и на сегодняшний день. Понимание этого очень важно для программистов. Читайте подробнее здесь (англ):

ASP / ASP.NET

  • ASP – это аббревиатура для Active Server Pages. Это первый скриптовый серверный язык для веб-сервера Microsoft IIS. ASP был заменен на серверный фреймворк с открытым исходным кодом – ASP.NET. Подробнее (англ):

AutoLISP

  • AutoLISP – это простой, легкий, интерпретируемый язык программирования, созданный специально для автоматизированного проектирования программного обеспечения. Читайте об этом (англ):

Awk

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

BASH

  • Bash – это наиболее часто используемый интерфейс командной строки в мире Unix. Это интерфейс на основе текста по умолчанию и для Linux и для Mac OS X. Подробнее (англ):

Common Lisp

  • Lisp является довольно уникальным языком программирования, возможно, самым древним языком и до сих пор продолжает использоваться. Это особенно важно в области искусственного интеллекта. Подробнее (англ):

C

  • Если мы включим сюда две производные этого языка, то смело можно будет сказать, что ни один язык не проиносил большей пользы и большего влияния, чем С. Это особенно важно для развития операционных систем и другого программного обеспечения. Многие компиляторы и интерпретаторы для других языков написаны на языке C. Подробнее (англ):

C++

  • Первоначально он назывался “C с классами”, C++, во многих отношениях, просто более продвинутый преемник C (хотя в целом ситуация сложнее). C++ был разработан, чтобы добавить высокий уровень парадигмы программирования C, сохраняя при этом возможности аппаратной манипуляции низкого уровня. Многие из этих дополнений добавлялись в C на протяжении многих лет, и языки больше похожи на два диалекта одного и того же языка. Подробнее (англ):

C#

  • Использовался в качестве основного языка для.NET программирования, похож на C++, является расширением языка программирования C, но с важным дополнением в виде объектно-ориентированных возможностей. Подробнее (англ):

CSS / CSS3

  • CSS или Cascading Style Sheets, также не является языком программирования, а языком стиля страницы – это язык, предоставляющий стиль и правила компоновки документам и приложениям. Является основным используемым в Интернете языком стиля. Подробнее:

Emacs Lisp

  • Emacs уже давно был известен как популярный и мощный текстовый редактор. Но добавление в него Emacs Lisp, превращает его в интегрированную среду разработки для почти любого языка программирования. Подробнее (англ): .

F#

  • F# – язык программирования общего назначения. Разработан, чтобы быть чрезвычайно эффективным. Будучи изначально только языком Microsoft, теперь является языком с открытым исходным кодом и используется на всех платформах. Подробнее (англ): .

FORTAN

  • Fortran впервые появился в 1957 году и до сих пор используется для решения некоторых из наиболее сложных проблем современной науки и техники. Подробнее (англ):

FORTH

  • Работа над Forth началась в 1968 году, и язык обычно используется на оборудовании, не имеющем традиционную операционную систему. Он также широко используется для управления станками. Подробнее (англ):

Haskell

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

HTML

  • HTML не является языком программирования. Это язык разметки – язык добавления смысловых и стилистических аннотаций содержимому. Является основным языком для веб-контента. Знание его необходимо и обязательно всем веб-дизайнерам и веб-разработчикам, а также всем (писателям, редакторам), кто производит Интернет контент. Подробнее (англ): и

IDL

  • IDL, или Interactive Data Language, это язык программирования, используемый в основном для анализа и визуализации данных. Он до сих пор широко используется в аэрокосмической промышленности и астрономии. Подробнее (англ):

INTERCAL

  • INTERCAL является пародийным компьютерным языком, разработанным в начале 1970-х годов. Его создали как шутку, чтобы показать как технически сложны языки и трудно читаемы. Это реальный язык, который можно скачать, и с помощью которого можно даже что-то сделать. Подразумевается, что вы должны быть хорошо с ним знакомы для этого – но, опять же, не слишком хорошо, ведь и это не понравится самому INTERCAL. Подробнее (англ):

Java

  • Java является языком высокого уровня и предназначен для использования на Java Virtual Machine. Имеет очень мало внешних зависимостей, и был предназначен для работы на любой физической машине. Много используется в сетевой архитектуре, а также во встраиваемых устройствах и других вычислительных приложениях. Подробнее (англ): .

Javascript

  • JavaScript (не имеет фактического отношения к Java) это скриптовый язык, изначально разработанный для использования в веб-браузерах. Поэтому он имеет встроенную возможность работы с Document Object Model (DOM), отображением находящегося в памяти контента веб-страниц. Является основным языком программирования для front-end веб-разработки. В основном управляется событиями, и, благодаря Node.JS, в последнее время получил признание как серверный язык. Подробнее (англ): и . И здесь:

Ksh

  • Korn Shell (ksh) представляет собой интерфейс командной строки, используемый на Unix. Он был ранней оболочкой (shell), совместимый со стандартной оболочкой Bourne, но со всеми классными интерактивными функциями оболочки C. Подробнее (англ):

Linux Programming

  • Программирование Linux включает в себя все: начиная от скриптов оболочки до разработки приложений и разработки ядер. Подробнее (англ):

Logo

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

ML

  • ML первоначально разработан как язык мета-программирования: язык для создания других языков. Но со временем он стал языком общего назначения, широко использовался в образовании, математике, естественных науках и даже финансах. Подробнее (англ): .

MPI

  • Message Passing Interface (Интерфейс передачи сообщений) представляет собой стандартный протокол для отправки сообщений между процессами или программами. Был реализован в ряде языков программирования, включая C, C++, Java и Python. Благодаря MPI стали возможны параллельные вычисления. Подробнее (англ):

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

Objective-C

  • Еще одна версия C, созданная в 1980-е годы для того, чтобы обеспечить полностью объектно-ориентированную реализацию C. Сейчас основное применение этого языка приходится на Mac OSX и операционные системы iOS. До недавнего времени iOS приложения должны были быть написаны на Objective-C, но сейчас можно писать также на Swift. Подробнее (англ):

OCaml

  • OCaml является объектно-ориентированным функциональным компьютерным языком. По ML традиции, он много используется для написания других языков программирования и фреймворков. Подробнее (англ): .

Разработка операционной системы

  • Эверестом среди работ по программированию считается разработка операционной системы. Если вы хотите доказать себе, что можете написать все, что угодно, то нет ничего лучше, чем написать свое собственное ядро операционной системы и связанные с ней инструменты.Но будьте осторожны: это путешествие по силам только храбрым и истинным программистам! Подробнее (англ): .

Perl

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

PROLOG

  • Пролог – язык логического программирования, разработан для обработки естественного языка. Подробнее (англ):

Pure Data

  • Pure Data является уникальным визуальным языком программирования. Был создан специально для того, чтобы позволить пользователям создавать видео, аудио и графические работы. Подробнее (англ): .

Python

  • Python является языком программирования высокого уровня. Интерпретируемый (некомпилируемый) язык, также известный как “скриптовый язык”. В основном используется в качестве инструмента для выполнения специализированных задач программирования, таких как задачи по автоматизации и анализу данных. Имеет сильный набор инструментов для математических и научных вычислений, часто используется исследователями. Подробнее (англ):

Ruby on Rails

  • Ruby on Rails – это фреймворк для веб-разработки для языка программирования Ruby. Он обеспечивает архитектуру MVC (Model View Controller), уровень абстракции базы данных, а также множество инструментов для ускорения процесса программирования веб-приложений. Очень популярен для быстрой разработки веб-приложений. Подробнее (англ):

SAS

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

Scala

  • Scala является относительно новым языком – более или менее новой и лучшей Java. Это отличный язык для Java-программистов, которые хотят быть более эффективными, или для людей, кто только начинают изучать программирование и хотят изучать мощный язык, который не будет ограничивать их в будущем. Подробнее (англ): .

Scheme

  • Scheme – старый язык, но до сих пор используется для обучения программированию и более сложных предметов в информатике. Основан главным образом на Lisp, и частично на ALGOL. Подробнее (англ): .

Scratch

  • Язык программирования Scratch был создан специально для обучения программированию детей в возрасте от 8 до 16 лет. Scratch – легкий, и с ним изучать основы логики программирования детям можно в увлекательной игровой форме. Подробнее (англ):

Simula

  • Simula – исторически важный язык, так как это был первый язык, внедривший понятия, ставшие основой для объектно-ориентированного программирования. Подробнее (англ): .

SMIL

  • SMIL (Synchronized Multimedia Integration Language) инструмент для тех людей, которые хотят создавать и распространять презентации. Особенно полезен, если вы хотите создавать презентации, которые должны время от времени обновляться. Подробнее (англ):

SQL

  • SQL (Structured Query Language) – язык, используемый для связи с Relational Database Management Systems (RDBMSes). SQL позволяет программисту создавать структуры данных, вставлять и редактировать данные, а также их запрашивать. Подробнее (англ):

Stata

  • Stata это среда разработки и язык программирования для решения серьезных статистических проблем. И хотя он создан довольно давно, но все еще широко используется. Если вы связаны со статистической работой, Stata – отличный инструмент. Подробнее (англ):

Swift

  • Swift является новыйм языком программирования, разработанным компанией Apple, для iOS, OS X, watchOS, tvOS и Linux. Это язык будущего для разработчиков программ и приложений для устройств Apple. Подробнее (англ):

S-PLUS

  • S-PLUS является коммерческой версией мощного языка программирования S, разработанного для выполнения статистического анализа. Проект GNU имеет свою собственную версию S, называемую R. Все необходимые ресурсы о S с акцентом на S-PLUS:

UNIX Programming

  • Широта программирования на Unix велика. Она охватывает диапазон от административных скриптов к коду на основе текста до разработки X Window. Подробнее (англ):

XML

  • XML хорошо структурированный язык для разметки, предназначен, как для чтения человеком, так и машиной. Подробнее (англ):

Урок подготовил: Акулов Иван

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать .

Курсовая работа

на тему: “Языки программирования”


Введение

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

1.1 История развития языков программирования

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

2.1 Си его разновидности

2.2 Паскаль

2.3 Фортран

2.4 Бейсик

Выводы и предложения

Список использованной литературы

Введение

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

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

Объектом исследования послужили языки программирования и история развития языков программирования.

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

Цели исследования:

1. Просмотреть общее сведения и уровни языков программирования.

2. Просмотреть историю развития языков программирования.

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

Задачи исследования:

1. Ознакомления с языками программирования.

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

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

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

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

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

Применяемые технические средства: ПЭВМ: Core 2 DuoE6600 2.4 ГГц 2 x 4 Мб L2; 2 x 1024 Мб DDR3-1333МГц; NVIDIAGeForce 8600 GT 512 Мб; HDDHitachiDeskstar 7K1000 1 Тб; Принтер: Canon LBP3010.

Программные средства ОС WindowsXPProfessionalSP3. Данная курсовая работа выполнена в программе MicrosoftWord 2003, а также были использованы другие программы: Microsoft PowerPoint, Nero StartSmart.

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

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

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

Основные требования, предъявляемые к языкам программирования:

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

единство - использование одних и тех же символов для обозначения одних и тех же или родственных понятий в разных частях алгоритма. Количество этих символов должно быть по возможности минимальным;

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

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

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

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

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

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

· машинные;

· машинно-оpиентиpованные (ассемблеры);

· машинно-независимые (языки высокого уровня).

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

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

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

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

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

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

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

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

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

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

Таким образом, можно сформулировать основные преимущества языков высокого уровня перед машинными:

алфавит языка высокого уровня значительно шире алфавита машинного языка, что существенно повышает наглядность текста программы;

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

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

требуемые операции задаются с помощью общепринятых математических обозначений;

Поддержите проект — поделитесь ссылкой, спасибо!
Читайте также
Плазменная зажигалка тесла Приглашение к тестированию даджетов Плазменная зажигалка тесла Приглашение к тестированию даджетов Как сделать мигающую аватарку или баннер в фотошопе Как сделать медленно мигающий светодиод Как сделать мигающую аватарку или баннер в фотошопе Как сделать медленно мигающий светодиод Создание и настройка виртуальной машины в VirtualBox Создание и настройка виртуальной машины в VirtualBox