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







Ответов: 3

3 +/-
Лучший ответ

Вспомним с самого начала.

Языки машинных команд и Ассемблер. Это в основном удел разработчиков арифметики и логики вычислительных систем и устройств, внутренних высоко специализированных замкнутых целевых систем в военной технике, средствах коммуникаций, оповещения, и т. д. Это ювелирная работа. Регистры, команды, переходы, операции с плавающей и фиксированной точкой. Например, задача по организации цикла вычислений уже требует целого пакета команд и операндов. У нас начинали работать с машин серий М (М220М, например). Для обычных прикладных задач на этих машинах самым удобным был, пожалуй, Алгол в разных версиях (напр., Алгол-60). Были очень хорошие трансляторы с Алгола ТА-1М и ТА-2М. Вообще Алгол - "академический" язык высокого уровня, на котором было очень легко реализовывать любую прикладную математику. Его характеризует гибкая логика и красота операторов, легкая организация вложенных циклов с пост- и предусловием, структурное разветвление условного оператора IF()THEN()ELSE(); операторные скобки, Булева логика и алгебра (переменные и массивы типа BOOLEAN). Это позволяло легко понять структуру и логику программы неискушенному пользователю. Хотя объектный и исполняемый код получался не всегда эффективным по затратам счетного времени. Потом пришел к нам ФОРТРАН. Особенно с приходом БЭСМ-6. Песня, а не машина. Нет ей аналогов и сейчас, если вспомнить, как все было организовано на ней. 48 разрядов тогда - не фунт изюму, да еще в придачу два "куба" памяти по 128 К (тогда это, казалось, была умопомрачительная память). Особо следует похвалить "ФОРТРАН ГДР" для БЭСМ-6 в системе "Дубна" (совместная с немцами разработка). Там была потрясающая библиотека алгоритмов прикладных программ, многие из которых и до сих пор умные люди имеют (попереводили код в современных трансляторах для ПК), в том числе и графические модули рисовки системы ГРАФОР. С точки зрения программиста высокого уровня, ФОРТРАН не такой гибкий, как Алгол или нынешний Паскаль (кстати, напоминает Алгол). Но достоинствами Фортрана является очень эффективная арифметика. Исполняемые коды по быстроте приближались к Ассемблеру. Также стройность и модульность - немецкий порядок в тексте программ. Многим и мне это очень нравится. В старых версиях и даже в Фортране ГДР для БЭСМ-6 некоторая дубовость в работе с большими массивами, трудность или практическая невозможность динамической загрузки и необходимость резервировать память по максимуму. Так на БЭСМ-6 в Фортран ГДР помогали управляющие карты: *CALL FICMEMORY и *CALL ALLMEMORY - и все 128К памяти твои - грузи хоть слона (как тогда казалось)! Потом эта проблема была частично решена на Фортране для ПК, например, фирмы Microsoft, версия 1. Очень хороший компилятор. На нем и сам Фортран приобрел прелесть языка более высокого уровня, появилась возможность динамической загрузки модулей. Вообще модульность - свойство Фортрана. На нем написаны большинство алгоритмов в физике и математике. Что касается Ассемблера на БЭСМ-6, то там был свой Ассемблер - автокод "Мадлен". Он был повыше уровнем, чем ассемблер машин IBM, которые потом перешли к нам с запада со всей своей кухней в виде ЕС-1010 - ЕС-1060 (только последняя, пожалуй достигла возможностей БЭСМ-6, - там был аж целый Мегабайт памяти!). Вообще последнее печально. Жаль. БЭСМ-6 и система "Дубна" еще успели дать начало многопроцессорному комплексу "Эльбрус". Это уникальная штука. Свой язык для параллельных процессоров, с распараллеливанием потока вычислений. Вот, кстати, и орбитальный корабль "Буран" и носитель "Энергия" постигла та же судьба. Взамен получили на столе IBM PC XT. И то, сколько было радости! Почувствовать себя хозяином транслятора, того же Microsoft Fortran v.1.0! Самому наблюдать компиляцию и сборку, получение "obj" и "exe" модулей. Да, из языков "больших машин" IBM (EC) еще упомяну Кобол и PL-1. Первый был специально разработан для экономистов и бухгалтерского учета. Там хорошо таблицы реализованы, списки, и т. п. Для математиков этот язык не нашел широкого применения. А вот PL-1 - это сила! Особенно для разработчиков больших банков данных. Там очень хорошо и удобно по форматам структурированы записи в потоках обмена данными с внешней памятью на дисках и лентах. Незаменим был для ВЦ, обслуживающих различные базы с широко разнообразной номенклатурой объектов. Одно удовольствие было пользоваться всем этим богатым арсеналом записей и организацией структур данных в PL-1! Сейчас на ПК все это вручную опять надо делать на С и С++. Дальше пошли малые машины СМ, система DOS. Еще была уникальная Машина инженерных расчетов "МИР" затем "МИР-2", разработки Института кибернетики В. М. Глушкова. Ее закупили у нас американцы. Там был создан специальный язык "Аналитик", который позволял оперировать не только с числами, но и выполнять преобразования с формулами, включая дифференцирование и интегрирование в аналитическом виде. Такое могут сейчас делать только специальные математические системы (например, Matematica фирмы Wolfram). Также на "МИР-2" был прообраз современных сенсорных экранов - электронный карандаш, которым можно было вводить данные и графики прямо через сенсорное стекло монитора. На "Аналитике" лексика операторов основана на привычном нам русском языке с русским алфавитом. Был такой оператор "РАЗРЯДНОСТЬ" (число)(ставился в начале программы). Можно было задать, например, РАЗРЯДНОСТЬ 1000. И машина, хоть и медленно (порядка 100 тыс. операций с плавающей точкой в секунду), но реально считала с этой точностью. О языке "С" можно поэмы писать. Этот язык не имеет себе равных по гибкости и универсальности, отличаясь возможностью спуска с высокого на средний уровень и даже ближе к Ассемблеру. Совмещать с Ассемблером текст. Здесь нет предела совершенству. А С++ - структуры, классы! Это уже больше язык не просто понятий, а образов. Он приближает программиста к образному мышлению. Можно сказать, что язык С поднял искусство программиста на уровень поэзии. Про Бейсик скажу тоже. Во многом напоминает фортран. Это язык хороший и простой. Отличительное особенностью является отсутствие необходимости трехступенчатой подготовки кода. Запустил текст, пошел интерпретатор, и сразу выполняется. Легко освоить его, да и наработано уже много игрушечного и другого сервиса. Во многом благодаря простоте. Паскаль - похож академичностью на Алгол. Не нашел широкого применения у прикладных программистов. Многие предпочли перейти на С, и в объектно-ориентированный С++. И правильно. В любом программировании логика одна. Смысл один. Поэтому главным является не язык, а достоинство и "ноу-хау" алгоритма решения конкретной задачи, который приходит в образах, может быть на смеси языков. Например, начало на Фортране, а конец на С...

Ответил на вопрос: Cordies  
3 +/-

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


Начну с системы "Мастер", которую в конце 80-х придумал Евгений Веселов (создатель текстового редактора "Лексикон") с компанией из ВЦ АН СССР. Это была инструментальная система со своей БД, языком программирования, текстовым редактором, электронными таблицами, графикой. Она представляла собой Интерпретатор команд, написанный на языке Си. Основным объектом системы была "рамка". Все команды языка - на русском языке, типа: ОткрытьОбласть(), ОткрытьБазу(), Врамке(форма1, поле5) = 10. С помощью этой системы были написаны программы автоматизации Бухгалтерии, ФРЦ (финансово-расчетного центра), многих приложений в области Сельского Хозяйства и др.. Предполагалось, что современный экономист и бухгалтер легко освоят несложный язык системы "Мастер" и будут в состоянии самостоятельно расширять нужный функционал. На практике оказалось, что требуется, чтобы рядом с ними сидел программист-консультант. Конкурировать с западными разработками российские разработки не могли. После того, как многие талантливые программисты из России уехали на Запад, дальнейшего развития система Мастер не получила.


FoxPro 2.6 (под MS DOS). Это была довольно шустрая БВ в архитектуре файл-сервер. У неё существовал, разумеется, свой язык. Приятно, что был встроенный help, вызываемый по контексту. Основной "фишкой" языка были команды scatter memvar и gather memvar, которые позволяли извлекать (scatter) из записи БД все поля в переменные и записывать (gather) их обратно (после соответствующих действий). Существовало понятие "курсор" - временная база. С помощью курсоров удавалось существенно увеличивать быстродействие запросов к БД.

На FoxPro под MS DOS было написано достаточно много приложений, которые работали в различных областях народного хозяйства России.


Python (jython) (на сленге программистов "питон") - язык программирования высокого уровня. Jython - реализация Python на Java, широко используется при разработке web-приложения. Основное понятие - объект. Объектом может быть всё, что угодно. Ключевые объекты: словарь, список, кортеж. Примеры:

словарь = {u"Вася":u"Белый", "Sam":"Black", "Nobody":""}, список = ['',u'одна',u"две"]. Кортеж: (u'муж',u'жен') - это тот же список, который нельзя редактировать.

Строки можно писать как в одинарных ковычках, так и в двойных. Для выделения текста используются тройные кавычки. Чтобы указать, что читать в Unicode, перед строкой ставится символ 'u' (иначе будет абракадабра). Важно, что нумерация в списках в python начинается с 0. Списки, словари могут комбинироваться и вкладываться друг в друга как угодно. К ним легко добавлять новые элементы. Формат JSON по сути является комбинацией списков и словарей. Это аналог xml, причем более лаконичный.

Для python существует огромное количество библиотек, которые вы можете подключать к своему проекту.

В python не нужно специально объявлять объекты (переменные). Это происходит автоматически в момент появления объекта. Не нужны специальные операторы типа begin и end. Циклы выделяются отступами (обычно 4 пробела).

В python широко используется понятие метода. Например, метод iterate(). Чтобы перебрать все значения списка (или выборки из БД в курсор), достаточно написать:

for rec in tab1.iterate():

____rec.name = u'Новое значение'

____pass #тут что-то может делаться ещё ('#' - символ начала комментария)

____tab1.update()

В логических значениях нет необходимости писать is not None, поскольку в python несколько иная логика. Следующие записи эквивалентны:

# Первый вариант

if tab1.name is not None:

____data['schema']['@name'] = tab1.name

else:

____data['schema']['@name'] = ''

# Второй вариант

data['schema']['@name'] = tab1.name if tab1.name is not None else ''

# Третий вариант

data['schema']['@name'] = tab1.name if tab1.name else ''

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

Ответил на вопрос: Spaceward  
2 +/-

Особенность Бэйсика (BASIC) - в его простоте, даже примитивности. Самый лёгкий язык программирования, доступный для понимания любому. Не требует планирования (переменные можно не декларировать), что и удобно, с одной стороны, а с другой - не приучает к порядку.

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

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

Является прародителем куда как более востребованного Object Pascal (используется в любимой многими IDE Delphi).

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

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

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

Java - очень похожий на C++ объектно-ориентированный язык, особенностью которого является кроссплатформенность: программы, написанные на нём, без переделок (или с минимальными переделками) выполняются на самых разных устройствах - от компьютера до смартфона.

Ответил на вопрос: Hape 

Похожие вопросы

Спросил
6 Отв.
Что делать, если ПК не видит мышь?
Ответ: Комп не видит мышь... В таком, а равно как и во всех аналогичных случаях, отправляйтесь в магазин за новой. Любой ремонт мыши будет по стоимости равняться ... Читать далее...
Автор вопроса: Decide, в категории | | | | |
Спросил Decide
7 Отв.
Какой смысл несут религии?
Ответ: Традиционные религии из века в век несут в себе нравственные законы человеческого сообщества. Мораль и нравственность не пропишешь в Уголовном Кодексе, но соблюдаться они должны. Поэтому, испокон в ... Читать далее...
Автор вопроса: Patent, в категории | | |
Спросил Patent
1 Отв.
Как лечить ошибку загрузки «Image failed to verify with ACCESS DENIED»?
Ответ: При какой загрузке? Никаких образов ноутбук загружать не должен. Что-то вы не договариваете. Написано ж "Невозможно проверить образ из-за отсутствия доступа. Для продолжения нажмите любую клавишу". ... Читать далее...
Автор вопроса: Duffer, в категории | | | | |
Спросил Duffer
1 Отв.
Включаю usb колонки и комп зависает или выключается, в чём дело?
Ответ: У меня бывало подобное при вставке флэшки, компьютер просто зависал и чёрный экран! Как оказалось, всё дело в статической энергии... Поэтому прежде чем вставлять флэшку, стал её usb-разъём шоркать о ... Читать далее...
Автор вопроса: Pythonidae, в категории | |
Спросил Pythonidae
2 Отв.
Можно ли выучить физику за девять месяцев?
Ответ: Всю физику одному человеку нельзя выучить (познать) даже за всю жизнь, и, если бы это было возможно, даже за 100 жизней. Но тот кусочек физики, который изучают в школе, за 9 месяцев выучить вполне мо ... Читать далее...
Автор вопроса: Marlings, в категории |
Спросил Marlings
2 Отв.
Как объяснить ребёнку откуда берутся цвета?
Ответ: Можно объяснить, что цвета ни откуда не берутся, они есть, и мы, люди, их видим, потому что у нас особое зрение, в отличие, например, от некоторых животных. А откуда они взялись изначально - они созд ... Читать далее...
Автор вопроса: Wendie, в категории | | | |
Спросил Wendie
1 Отв.
Как скачать на компьютер музыку, игры с гугл плей?
Ответ: Изначально нужно скачать плей маркет на компьютер. Вот ссылка: http://frostsoft.ru/54-play-market-dlya-kompyutera.html А дальше - следуете инструкции. ... Читать далее...
Автор вопроса: Vitamine, в категории | | | | | |
Спросил Vitamine
2 Отв.
Почему у мужа на фото один глаз всегда красный, а иной — нормальный?
Ответ: "Красные глаза" на фотографии это частое явление при съемке со вспышкой. Дело в том , что при слабой освещенности зрачок у глаза расширяется для того чтобы пропустить больше света внутрь глаза. При с ... Читать далее...
Автор вопроса: Virgilia, в категории | |