12.07.2015 Views

Выпуск 14

Выпуск 14

Выпуск 14

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

СЕМИНАРИ.А. Сукин,г. Переславль-Залесский36сентябрь 2011 / ИНФОРМАТИКАHaskell: серебрянаяпуля современногопрограммирования?Что такое функциональноепрограммирование?Описать язык Haskell непросто. Сам основнойразработчик и законодатель мод этого языкаСаймон Пейтон-Джонс полагает, что главныйминус Haskell — его чрезмерная полнота инепривычность для среднестатистического современногопрограммиста. Поэтому я вынужденсовершить небольшой экскурс в историю ипричины появления такого явления, как функциональноепрограммирование. Надеюсь, чтоэто краткое путешествие позволит вам лучшевникнуть в глубины этого чисто функциональногоязыка.Традиционно, когда мы в современном миреупотребляем термин “программирование” или“язык программирования”, мы имеем в видупрограммирование императивное и такие широкораспространенные в наше время языки,как C, Pascal, Java, C#. У многих информатиковтермин “программирование” неустанно следуетвместе с понятиями объектов и объектноориентированногоподхода. Немалое же количествопрограммистов вообще имеет очень смутныеи крайне общие представления о разделенииязыков и парадигм программирования.Для тех читателей, что не стесняются относитьсебя к последней категории (признаться, я сампостоянно сомневаюсь, что в этом хитросплетениисущностей можно хоть как-нибудь разобраться),необходимо ввести некоторые определенияи строго показать структуру современного“зверинца” языков программирования.В современном состоянии вычислительнаятехника переживает некоторый кризис, связанныйс принципиальной несовершенностьюсуществующих компьютеров и отсутствиемпрактических реализаций компьютеров другоготипа, например, биологических или квантовыхвычислителей. Современная ЭВМ — этомашина фоннеймановского типа, нравитсянам это или нет. Несмотря на то что идея такихмашин считалась устаревшей уже 30 лет назад,они до сих пор являются фактически единственнымизвестным нам способом аппаратнореализовать вычислительное устройство, обладающееприемлемыми для нас характеристикамии производительностью. Все основныеимперативные языки программирования, будьто C, Pascal, с оговорками Java и C#, являютсямоделями машины фон Неймана.Чем же плоха такая машина и чем плохи еемодели, а также какие из возникающих приэтом проблем можно устранить при помощи

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!