CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
12.01.2010

Последние комментарии

Нужны ли Linux'у пользователи? (277)
24 Декабрь, 23:02
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 Декабрь, 22:53
Kubuntu Feisty (15)
24 Декабрь, 18:42
Один на один с Windows XP (3758)
24 Декабрь, 11:46

Каталог софта

Desktop
Internet
Internet-серверы
Безопасность
Бизнес/Офис
Игры
Мультимедиа
Наука
Операционные системы
Программирование
СУБД
Создание веб-сайтов
Утилиты

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Уникальная сторона языков программирования

14-09-2010, 02:18

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

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

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

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

• Языки второго поколения – это так называемые ассемблеры, то есть языки, в которых бинарные инструкции заменены мнемониками – сокращениями из нескольких букв названий команд процессора. Хотя языки этого типа все еще тесно связаны с архитектурой процессора, однако то, что они пишутся с использованием названий инструкций, а не их двоичных кодов, значительно упростило работу программистов.

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

Здесь следует также вспомнить о соответствующих инструментах программистов, которые быстро убедили всех в преимуществах использования языков третьего поколения. Главным козырем программирования с использованием этих языков стало предоставление так называемой среды разработки программного обеспечения (Integrated Development Environment, IDE). Этот инструмент содержит редактор (часто с возможностью цветового выделения синтаксиса исходного кода), интегрированный с компилятором, то есть программой для генерирования конечного кода исполняемых программ (например .exe в системах DOS и Windows), а также программой для запуска программы в пошаговом режиме работы (debugger – отладчик). Инструменты программиста для языков третьего поколения, действующие как в текстовом режиме, так и в графической среде, дали возможность даже отдельным программистам создать и отлаживать сложнейшие системы, исходный код которых часто разрастается до многих тысяч строк.

• Четвертое поколение языков программирования является, с одной стороны, продолжением объектного программирования, а с другой – это системы, поддерживающие процесс создания программного обеспечения, фактически проектирование, во время которого программное обеспечение составляется из определенных готовых и новых компонентов, вплоть до автоматических процедур тестирования. Сюда можно отнести системы автоматического создания прикладных программ с помощью визуальных средств разработки (Visual Basic, Delphi). Типичным примером этого поколения является среда CASE (Computer Aided Software Enginnering), поддерживающая проектирование и автоматическую генерацию, по крайней мере, части кода программы. Или среда языков 4GL (Generation Language) – это, к примеру, Clarion или Oracle Case Desinger.

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

Сергей Арсеньев


Смежные материалы:
Сканеры штрих-кодов – их разновидности и цели использования
Современные компьютерные технологии
Почему именно мы
Основные различия между социальными и казуальными играми
Причины популярности мобильных игр
Автоматизация строительного СРО

Новости:

Все новости на CitCity.ru

 
Software is like sex: it's better when it's free.
©Linus Torvalds