Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Язык программирования APL

Программирование
Из песочницы
«В скором будущем стоимость аппаратной части компьютеров, необходимой для запуска и работы программы будет ничтожно мала по сравнению со стоимостью труда программиста, поэтому имеет смысл развивать языки программирования, которые, хоть и более требовательны к ресурсам компьютера, зато позволяют минимизировать количество кода», — примерно так рассуждал доктор Джим Браун, возглавлявший группу APL девелоперов IBM в середине 80х. Что ж, его прогнозы оправдались лишь отчасти. Сейчас APL применяется, и вполне успешно для программирования финансовых и научных расчетов, входит в состав .NET платформы и в TIOBE Index на ноябрь 2010 занимает 33 место (рейтинг 0,366%).
Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Просмотры15.3K
Комментарии 25

Создаем простое GUI приложение на APL

Программирование
Из песочницы
Всем привет! Появившаяся недавно на Хабре статья, посвященная языку APL, на мой взгляд, не столько описала, сколько усложнила этот довольно простой и логичный язык. Я решил попытаться доказать что APL — это просто! Для этого я покажу вам, как написать на APL небольшое GUI приложение с использованием интерпретатора компании Dyalog, так как собственно сам язык APL состоит из пары десятков примитивов (те самые «закорючки») и всё. Параллельно постараюсь объяснить значение используемых примитивов и особенности разработки в Dyalog APL (много картинок!).
Итак, «Угадай Число» на APL!
Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Просмотры1.4K
Комментарии 3

Игра Жизнь на языке программирования Mercury

Программирование
В рамках экспериментов с языком программирования Mercury а также под впечатлением уже неоднократно поднимавшейся в последнее время здесь темы игры Жизнь (1, 2, 3) захотелось написать свою реализацию на этом интересном языке программирования.

В двух словах о Mercury. Этот язык функционально-логического программирования замышлялся как усовершенствование prolog'а. Усовершенствование заключается в введении в пролог статической типизации (а так же декларирование режима детерминизма). Как результат — больше возможностей у компилятора создать эффективный исполнимый код, больший контроль на этапе компиляции. Любителям пролога, наверняка знаком анекдот:
Q: How many Prolog programmers does it take to change a light bulb?
A: False.

В царстве прологов нишу типизированных прочно занимает Visual Prolog. Но, стоит отметить, что подходы Visual Prolog и Mercury весьма отличны.
Читать дальше →
Всего голосов 30: ↑27 и ↓3 +24
Просмотры3.7K
Комментарии 12

Работа с файлами в Dyalog APL

Программирование
Всем привет. Сегодня я расскажу (и покажу) вам, как организована работа с файлами в Dyalog APL. Экспериментировать будем с «родной» файловой системой Dyalog – DCF, остальные файлы в данной статье не рассматриваются. Также будет затронута тема обработки исключений. Все опыты будут проводится на материале из прошлого топика. К сожалению, некоторые изображения хренового качества, прошу меня извинить, ибо не знаю хорошего хостинга картинок. Итак, поехали.
Читать дальше →
Рейтинг 0
Просмотры1.5K
Комментарии 2

Двурукая подвижная роботизированная платформа

ГаджетыКомпьютерное железоРобототехника


Двурукая подвижная роботизированная платформа (BDRP, так же известная как Робо-Салли) разработана лабораторией прикладной физики (APL) университета Джона Хопкинса в Лауреле, Мэриленд, эта роботизированная система спроектирована для воспроизведения человеческих возможностей для безопасного отстранения исполнителя от опасных для жизни операций. Платформа имеет два модульных протеза, разработанных в APL (http://www.jhuapl.edu/prosthetics) по программе революционных протезов DARPA, которая была представлена на 60 Minutes (CBS News), National Geographic и Popular Mechanics. BDRP имеет 42 степени свободы (17 в каждой конечности, три в торсе, три в шее, и две в передвижной платформе).
Смотреть видео
Всего голосов 24: ↑23 и ↓1 +22
Просмотры11.2K
Комментарии 24

Язык программирования и база данных Q: в энтерпрайсе синтаксис роли не играет

Ненормальное программированиеПрограммирование
Из песочницы
Tutorial
Возникла необходимость выбрать новый тарифный план для сотового. Провозившить минут 30 с excel и google-docs стало понятно, что ничего толкового из этого не выйдет и без db тут не обойтись.

Чуть подумав рука сама набрала «q», так как это было единственное доступное на компьютере здесь и сейчас. Что про него знал: что первый и последний раз запускал год назад, минут на 30, для простой задачки по разбору и поиску по файлу.

Дальше будет много q, а именно ascii последователя подмножества языков APL'а и языка Scheme, а именно k и его расширения k-sql, переродившихся в продукт с именем Q — тесной связке языка и встроенной в него базы данных.

C:\Users\unknown\Dropbox\j>q
KDB+ 3.0 2013.02.06 Copyright (C) 1993-2013 Kx Systems
w32/ 2()core 2972MB unknown win-d2om7les24v 192.168.1.2 PLAY 2013.05.07


Я не боюсь увидеть очеловеченный APL
Всего голосов 16: ↑14 и ↓2 +12
Просмотры7.7K
Комментарии 10

Высокоуровневое программирование в 1975м году

Ненормальное программированиеПрограммирование
Tutorial
В 1975м году, ПК IBM 5100 выпускалась в вариантах с языками программирования BASIC или APL. Как можно догадаться, что в итоге основной упор был сделан на интерпретатор BASIC'а по причине того, что при принятии решения о том, что покупать, пользователям данного ПК он казался более понятным, а APL требовал какого-то минимального уровня вхождения. Говорят, что что APL потерял популярность из-за не ascii-символов, может это отчасти и так, но произошло это не в 75м.

Возможно, история программирования языков повернулась бы чуть иначе, если бы развитие пошло с упором на интерпретатор APL'а, но об этом остаётся только фантазировать, так что предлагаю просто понаблюдать за тем, как писали программы в далёком 1975м.

до 5й минуты простая математика.

чуть описания символов
Всего голосов 25: ↑22 и ↓3 +19
Просмотры10.7K
Комментарии 6

Язык K: Отображение графического интерфейса из данных

Ненормальное программированиеПрограммирование
Tutorial
Я как всегда об APL, а точнее о старой версии языка K, которая содержала в себе GUI, с весьма необычным подходом к нему.

К сожалению новые версии языка K решили сосредоточиться только на обработке данных и исключили GUI, так что данный подход остался в истории, однако может быть кто-то подскажет аналогичные современные фреймворки — было бы очень интересно посмотреть.

Начнём. Краткое описание API, которое нам доступно:
`show$`v        show variable v
`hide$`v        hide variable v

Это всё, больше нет ничего. Т.е. основная особенность — что GUI в K это прямое отображение данных в памяти. А теперь как с этим можно удобно работать.
Ну ладно, посмотрю на ваш K
Всего голосов 36: ↑33 и ↓3 +30
Просмотры8.2K
Комментарии 6

J: программирование на смайликах

Ненормальное программированиеФункциональное программирование
Язык J многими, в том числе и на хабре, считается write-only language (что, в общем-то, неправда) или программированием через регэкспы. Важно помнить, что J — это ASCII-версия математической нотации Айверсона, лежащей в основе APL. Точно так же, как невозможно прочесть Хиндли-Милнера, не зная математической нотации, код вроде value =: [:(]`{.@.([:1&=#))[:,[:>[((([:<[)=[:{.])#[:{:])[:>] не может быть понятен человеку, незнакомому хотя бы со словарём языка.

Под катом небольшая подборка учебников и туториалов по теме для заинтересовавшихся. (Внимание: все ресурсы на английском языке)
Читать дальше →
Всего голосов 30: ↑19 и ↓11 +8
Просмотры9.7K
Комментарии 8

J может быть читаемым

Ненормальное программированиеФункциональное программирование
Tutorial
Жесть! Это как программирование через регулярные выражения…
Нет, вы меня не заставите! Больше никогда!
Смотрю на код и чувствую себя идиотом. Это правда не эзотерический язык типа brainfuck? Им кто-то реально пользуется? И эти программы потом читают?
quicksort=: (($:@(<#[), (=#[), $:@(>#[)) ({~ ?@#)) ^: (1<#)
Perl нервно курит в сторонке.
Хабрахабр о J

imageJ — корейский среди языков программирования. Взрыв на фабрике спецсимволов. Куча скобочек, точек, слэшей, и всё это ещё и работает. Не иначе как по велению чёрной магии, а то и самого Сатаны.

Некоторые из тех, кто пишет на J, забывают простые правила написания любого кода в погоне за краткостью или просто увлекшись. Эти правила не новые, но они приобретают критическое значение применительно к APL-подобным языкам, потому как при чтении конструкций вроде ((]i.~[:{.[){([:{:[),]`([:<[$:[:>])@.([:32&=[:3!:0[:>]))"2 0 даже тренированный мозг сворачивается в трубочку.

Итак, простые правила написания читаемого кода на J под катом.

Без словарика под кат лучше не соваться. Вас предупреждали.
И напомню, список полезных ссылок здесь.
Читать дальше →
Всего голосов 56: ↑51 и ↓5 +46
Просмотры17.7K
Комментарии 24

Примеры классического кода, ставшего Open Source

Блог компании ua-hosting.companyРазработка веб-сайтовOpen sourceПрограммированиеСистемное программирование


В прошлом году NASA опубликовала список программного обеспечения, код которого они разрабатывали в течении долгих лет. NASA уже давно стала знаменита тем, что делится с общественностью своим кодом. Другие же разработчики не всегда готовы пойти на такое. По крайней мере не сразу. Давайте ознакомимся с некоторыми примерами классического кода, который теперь можно и посмотреть, и пощупать.
Читать дальше →
Всего голосов 31: ↑26 и ↓5 +21
Просмотры31.4K
Комментарии 17