Довольно давно, собирая информацию по средствам параллельного программирования, наткнулся я на элегантный (другими словами сложно описать ощущения) язык Oz http://www.mozart-oz.org. Язык тогда показался мне достойным того, чтобы представить его Habraсообществу. И вот, у меня появилось время и причины это сделать.
Oz — мультипарадигменный язык программирования. Набор базовых абстракций в языке необычный и позволяет, например, написать отправляющую информацию процедуру
Речь идёт именно о том, что отправка и получение данных осуществляются одной и той же последовательностью операций виртуальной машины Oz. Естественно, достигается это за счёт особых абстракций для работы с данными и с параллельными процессами. Описанию этих абстракций и посвящён этот текст, потому как на мой взгляд — они неплохо позволяют почувствовать особенности Oz. Конечно, Oz больше, чем изложенное ниже, но, как мне кажется, тайна хитрого send — материал подходящий для первого знакомства с этим языком и для получения от него удовольствия.
Oz — мультипарадигменный язык программирования. Набор базовых абстракций в языке необычный и позволяет, например, написать отправляющую информацию процедуру
send
так, что при её помощи можно будет так же и получать данные. И без всякого подвоха вроде: send(socket; buffer; flag) = (if (flag == RECV) (recv(socket; buffer)) or (realsend(socket; buffer)))
. Речь идёт именно о том, что отправка и получение данных осуществляются одной и той же последовательностью операций виртуальной машины Oz. Естественно, достигается это за счёт особых абстракций для работы с данными и с параллельными процессами. Описанию этих абстракций и посвящён этот текст, потому как на мой взгляд — они неплохо позволяют почувствовать особенности Oz. Конечно, Oz больше, чем изложенное ниже, но, как мне кажется, тайна хитрого send — материал подходящий для первого знакомства с этим языком и для получения от него удовольствия.