Как стать автором
Обновить

Комментарии 25

Какой смысл сейчас использовать APL, если есть J или K?
как понимаю, потому что APL работает в CLR среде, а J и K на сколько я знаю нет
Для сравнения, попробуйте создать в студии хотя бы матрицу 4000 на 4000, у меня программа вообще не запустилась!

o_O
Подозреваю, что под студией вы имели ввиду Visual Studio, а под языком — C. В этом случае вы видимо решили создать эту матрицу в стеке, а не использовали malloc(), что и являлось причиной проблемы.
прошу прощения, я опечаталась. создавалась матрица 40000 на 40000, Visual Studio, а язык C#, поэтому создавала на куче.
Если это была матрица 32-битных чисел, то эта матрица займёт чуть меньше, чем 6 Гб. Уверены, что у вас 64-разрядная ОС и достаточно памяти?
И как эта матрица создается в APL?
Здесь, судя по всему, идет намек на ленивые вычисления, хотя все-таки подобное сравнение не корректно.
согласна, это действительно некорректное сравнение, убрала спорный кусок.
Кроссплатформенность не может быть особенностью / преимуществом языка.
Вот! Скажи это джавистам! :)
Особенностью — нет. Преимуществом — да.
Откуда кроссплатформенность в языке то берется? КП — особенность и преимущество среды разработки, компилятора, виртуальной машины и т.д., но не языка. Вы же не можете сказать, что черный цвет кожи является особенностью / преимуществом французского языка?
Ок. Надо в статье «кроссплатформенность» поправить на «кроссплатформенные реализации».
В языке вполне может быть заложена не кроссплатформенность. Например, может всегда считаться, что разделители пути — только определённые слеши, всегда есть «диски» (как в Винде) или всегда есть жёсткие ссылки и т. д.

Можно запросто навязаться в языке на особенности платформы.
Прошу прощение, но как может сущность «разделители пути» (относится к платформе в ряде случаем) оказаться в языке? Язык оперирует символами. Различного рода символы, которые требуют той или иной экранизации и т.д. — это одно, то о чем вы говорите — совершенно иное. Готов к дальнейшему диалогу )
Иногда в язык включают не только конструкции, но и функции этого языка, например, в Perl в ядро входит несколько функций, в PHP — их тонны, а в C — ни одной.

Если функция чтения файлов, например, не умеет читать их построчно и в языке нет ничего, что могло бы помочь программисту понять чем кончается строка в данной операционной системе, то сделать переносимую программу, которая работала бы с текстовыми файлами на таком языке невозможно.
Если у языка нету четкой спецификации, то реализации могут и не гарантировать кроссплатформенности. А если в спецификации прописаны детали реализации, то такое может быть. К примеру жава — да она гарантирует кроссплатформенность, но в том случае, если реализация создана по оффициальным спекам.
мне кажется, что для компилируемых ЯП реализация настолько тесно связана с самим языком, что вполне себе можно допустить использования термина кроссплатформенность для языка. хотя чисто формально это и не правильно. Исправила в статье.
в нашем случае используем потому, что АПЛ входит в .Net.
на самом деле спец символы не так страшны, как кажутся, а J и К фактически являются диалектами АПЛа.
По первому впечатлению, похоже на Matlab
так и есть, Matlab это предок АПЛ :)
APL и MathLab — это разные вещи. Никаких родственных связей нет. APL был придуман для упрощения записи математических выражений, независимо от МатЛаба.
перенесите в «ненормальное программирование»х)
Спасибо, теперь я знаю как можно отомстить преподу по алгоритмизации.
Остаётся только посочувствовать тем, кому такой код останется на сопровождение.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации