СообЧа > База Знаний > Программирование

Вопрос

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

Ответ

Языков существует огромное количество, и их описание может занять не одну книгу. Имеет, наверно, смысл рассмотреть основные из них.
Начать стоит, наверное, с основы основ — Ассемблера. Это язык низкого уровня, который фактически отражает систему команд процессора: они записываются в удобном для человека виде, плюс дополнительные средства, например, метки (иначе вам бы пришлось самому высчитывать кол-во байт для команд переходов и вызовов, а это очень даже не просто). Еще в старые времена, когда компьютеры были большими :), ассемблер использовался для очень специфических вещей, требующих большой скорости и компактности. Это драйверы, различные утилиты, системы обработки в реальном времени и пр. Сейчас, в эпоху Виндов, написание программ на ассемблере стало неактуальным, и его используют для написания драйверов, или как ассемблерные вставки в других языках. Хотя некоторым нравится писать на ассемблере для Win, но это очень своеобразно.
Дальше можно рассмотреть большую группу т.н. процедурных языков. Это и Basic (Visual), и Pascal(Delphi), C (C++, Visual и др.), а также несколько устаревшие языки, такие как Алгол, Фортран, PL/1, Ада (правда, для некоторых из них существуют современные компиляторы, и их продолжают использовать). Все эти языки очень похожи друг на друга и отличаются разве что синтаксисом операторов и определенными специфическими моментами, делающими каждый из них более удобным для решения определенных задач. Но фактически это универсальные языки, и при наличии хорошего компилятора и библиотек их можно использовать для написания любых программ — от драйверов и бухгалтерии до игр и ПО для интернета.
Вкратце можно сказать следующее. Basic считается языком для новичков за счет достаточно понятных операторов и их простой конструкции. К тому же, его можно отнести к процедурному языку только частично. Однако, современные версии компиляторов наделили этот язык достаточно развитыми средствами и его можно использовать для любых целей. Pascal и C (С++) очень похожи друг на друга, но С считается языком профессионалов, т.к. позволяет использовать очень мудреные синтаксические конструкции (в ущерб читабельности программы), которые, ввиду особенностей компилятора, позволяют добиться большей производительности и компактности.
Остальные языки также по своей сути очень похожи и разрабатывались различными институтами или университетами для решения своих конкретных задач, а потом стали достоянием общественности. На самом деле, таких языков множество, я перечислил только те, что вспомнил. К этой группе можно отнести и Java. Данный язык по синтаксису напоминает С, но уже на этапе разработки был построен полностью на объектной модели (в отличии от С). Особенность его заключается в том, что программа компилируется в промежуточный код, а на компьютере при ее выполнении используется т.н. Java VM (виртуальная машина, фактически интерпретатор этого промежуточного кода). За счет этого достигается улучшенная переносимость программ. Также при его разработке были учтены вопросы безопасности.
Теперь языки для управления БД (базы данных). Это Clipper, FoxPro, dBase, Paradox, SQL. Опять же, принципиально (за исключением SQL) они мало отличаются. Это просто попытки различных фирм выйти на рынок ПО для работы с БД. Они очень похожи на вышеприведенные процедурные языки, но отличаются наличием встроенных команд для работы с БД. SQL выделяется из этой группы, т.к. является не языком программирования, а языком запросов. Его основу составляет технология «клиент-сервер», где клиентская часть формирует запрос на получение определенных данных от сервера, сервер этот запрос обрабатывает и передает запрашиваемые данные обратно клиенту. Создавался для обеспечения надежной и эффективной работы с большими БД и большим числом клиентских машин. Его основу составляет сервер, а клиентское ПО может быть написано на любом языке при наличии определенных библиотек, обеспечивающих посылки запроса и обработки полученных данных.
В отдельную группу можно выделить Perl, PHP и др. Программы, написанные на них, работают на стороне сервера. Они также чем-то похожи на процедурные языки, но отличаются тем, что имеют улучшенные возможности для работы со строками, т.к. получаемый на выходе HTML файл по своей сути является обычным текстом. Конечно, бухгалтерии на них не напишешь, но для работы интернет-серверов они незаменимы.
Необходимо также рассмотреть и т.н. скрипты. JavaScript и VBScript, которые являются Java и VisualBasic, но не компилируются, а интерпретируются во время работы браузера. Сюда же можно отнести и SSI, а также пакетные файлы MSDOS, различные файлы сценариев и пр. Задача скрипта — дополнить существующую систему новыми функциями или автоматизировать определенные действия.
Существуют очень специфические языки, которые сейчас практически не используются, а если и используются, то очень редко и часто в академических целях. Например, Пролог, Лисп, Форт.
Пролог построен на основах мат. логики. Его еще называют языком искусственного интеллекта. Очень специфический и трудный для освоения язык, т.к. в нем в корне изменен подход к программированию. Он работает с т.н. базой знаний, в которой изначально заложены определенные факты и правила работы с ними. Потом, используя эту информацию и входные данные, решается определенная задача. Удобен для построения экспертных систем, однако есть, например, очень изящные программы для решения дифференциальных уравнений, причем именно в текстовом, а не числовом виде, т.е. фактически в базу знаний заносятся правила решения дифференциальных уравнений, а программа, используя их, выдает результат.
Лисп — язык обработки списков. Тоже очень необычный и специфический язык. Его основу составляют списки. Могут быть списки списков и т.д, а это очень удобно для работы с информацией, имеющий древовидную структуру. Несмотря на кажущуюся узкую направленность, при наличии хорошей системы программирования может использоваться для любых применений, даже бухгалтерии или системы реального времени. Очень интересный язык, если будет возможность, очень рекомендую с ним ознакомиться хотя бы в познавательных целях.
Форт — тоже необычный язык. Чем-то похож на ассемблер. Интересно то, что в его основу положен стек, т.е. на нем нельзя записать 2+2. Дает очень быстрый и компактный код. В свое время даже разрабатывались специальные процессоры, поддерживающие его, т.е. он становился «ассемблером» для этих процессоров.
Ну, и на закуску — язык программирования для детей! Лого. Его основа — черепашка, которая перемещается по экрану и умеет рисовать. Но для того, чтобы что-то нарисовать, надо дать черепашке ценные указания, задать ей программу :)
Конечно, ответ не исчерпывающий, но иначе его можно было бы сразу сдавать в типографию. Я перечислил основные группы языков и наиболее известные из них.

Goltsov Dmitry



Copyright © 2000-2004 Сообщество Чайников
Контактная информация