Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [APL] Язык программирования APL (АПЛ) 
:(
    Опции темы
natiki13
Дата 25.1.2008, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 25.1.2008

Репутация: нет
Всего: нет



Насколько сегодня актуален такой язык программирования как APL? И насколько реально найти специалистов в этом языке на территории пост-советского пространства?
PM MAIL   Вверх
Sardar
Дата 26.1.2008, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Идея языка интересна (удобные векторы/матрицы), но синтаксис отвратителен, особенно использованием не ACII символов.
Тут пример. Ради академического интереса стоит изучить, но шанс, что ты его полюбишь очень мал, ещё сложней найти (активных) единомышленников... smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
regis
Дата 29.1.2008, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 12.12.2005
Где: Москва, Россия

Репутация: 2
Всего: 7



APL, безусловно, язык сильный. Т.е. его главную идею -- мощные операции над многомерными массивами -- некоторые даже вообще определяют как самостоятельную парадигму (array programming). К ней относят и прямых потомков APL: J, A+, еще несколько языков в этом роде.
Самым главным недостатком я бы считал как раз отсутствие нормальных средств структурирования кода более высокого уровня, чем операции. А то в APL все то, что алгоритмизируется в рамках операций над массивами можно записать в одну строку (только вот потом проблема в этой строке разобраться ;) ), но как только надо реализовать какую-то более внешнюю логику, то к вашим услугам только безусловные и условные переходы (добро пожаловать в Фортран-4). нормальные условия и циклические операции, хотя бы, не помешали. Ну и новые возможности (ООП, нормальная обработка исключений) в языке б не помешали: то, что есть, как уж очень эзотерично. ;)
А то, что набор символов не ASCII, собственно, преодолено во всех реализациях языка, где и ASCII-синонимы для всех операций есть. К тому же, все APL-символы прописаны в Unicode.

--------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой.
PM MAIL WWW   Вверх
Cr@$h
Дата 18.1.2009, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 4
Всего: 41



Вытеснен компилируемым Fortran и интерпретируемым M.
PM MAIL ICQ   Вверх
fplab
Дата 5.2.2009, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 9.11.2006

Репутация: нет
Всего: 1



Доброго утра, коллеги !
А подскажите, пожалуйста, как пощупать APL ? Т.е. есть ли свободные реализации ? Спасибо
PM MAIL   Вверх
jsharp36
Дата 8.10.2011, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.10.2011

Репутация: нет
Всего: 1



Я работал на J два года. Это ASCII реализация APL. Не согласен, что если его изучишь, то полюбить шанс мал. Высокий порог вхождения. Изучить его тяжело. И набить руку очень тяжело. Но если это удастся, больше ни на чем не хочется писать. Хотя, я и на плюсах работал и на C# сейчас работаю. 

Мощь этого языка просто не идет ни в какое сравнение с другими языками. В Джее также есть и ООП. Но ООП, на самом деле, не очень там нужно. Это выглядит дико как-то. Язык трудночитаем. Но также, краткость написания любого алгоритма не предрасполагают к использованию библиотек. Например, если там около 6 символов код, чтобы написать простой парсер CSV-файла, то очень лень писать многоразовую функцию, а потом ее искать. Это всё ведет к тому, что вы почти всегда работаете с одними и теми же встроенными сущностями, а не создаете свои. И это значит, что через пару лет, вы начнете свободно читать код и видеть в узорах женщин ))) Т.е. алгоритмы.

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

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

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

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

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

Это сообщение отредактировал(а) jsharp36 - 8.10.2011, 22:32
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Добро пожаловать в раздел "Другие языки" форума Vingrad!

Void
Void

Раздел посвящён различным языкам программирования, для которых (в силу невысокой популярности) нет отдельного раздела (GPSS, Lua, MATLAB, Ada, Forth, Smalltalk, Tcl, REXX, AWK и др.)

  • Обязательно следуйте правилам Форума.
  • Пожалуйста, прочитайте и следуйте рекомендациям по работе в разделе и навигации по Форуму.
  • Для вставки текстов исходных кодов используйте подсветку синтаксиса из выплывающего списка Код в форме ответа. Если Ваш язык в списке не представлен, то используйте тег: [code=ваш_язык]код[/code], например, [code=ada]код[/code]. Если в будущем подсветка синтаксиса для указанного языка будет реализована, исходный код преобразится.
  • Помните, один вопрос - одна тема.

Приятного времяпрепровождения! С уважением, Void, kemiisto .

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие языки | Следующая тема »


 




[ Время генерации скрипта: 0.0995 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.