//Без комментариев – Frank, Sandboxing JavaScript, OCaml 4.04.0 и Kotlin 1.0.6


• Делай, делай, делай

• Песочница на основе транзакций для JavaScript

• Выпущена версия OCaml 4.04.0

• Котлин 1.0.6

Иногда новости достаточно хорошо освещаются в других местах, и нам мало что остается добавить, кроме как довести их до вашего сведения.

Без комментариев-это формат, в котором мы представляем исходную исходную информацию, слегка отредактированную, чтобы вы могли решить, хотите ли вы следить за ней. 

Делай, делай, делай

Фрэнк-это тот новый язык, на который вам нужно взглянуть. Это толкает функциональный pardgm немного дальше, и это не просто еще один клон Java с лучшим синтаксисом и измененной системой типов. Это действительно ново. 

‘Быть—значит делать ” – Сократ.

‘Делать—значит быть ” – Сартр.

‘Do be do be do ” —Синатра. —анонимное граффити, через Курта Воннегута 

Frank-это функциональный язык программирования с эффектами и обработчиками в духе Eff, управляемый системой типов, вдохновленной функцией Леви call-by-push-value. Действие и Бытие четко разделены и управляются различающимися понятиями вычислений и типов ценностей. 

Мы исследуем разработку и реализацию Frank, строгого функционального языка программирования с двунаправленной системой типов эффектов, разработанной с нуля вокруг нового варианта абстракции обработчика эффектов Плоткина и Претнара. 

Обработчики эффектов обеспечивают абстракцию для модульного эффективного программирования: обработчик действует как интерпретатор для набора команд, интерфейсы которых статически отслеживаются системой типов. Однако Фрэнк устраняет необходимость в дополнительной конструкции обработки эффектов, обобщая основной механизм самой функциональной абстракции.

Функция-это просто частный случай оператора Frank, который не интерпретирует никаких команд. Более того, операторы Фрэнка могут быть мультиручками, которые одновременно интерпретируют команды сразу из нескольких источников, не нарушая прямого стиля функционального программирования значениями. 

Типизация эффектов в Frank использует новую форму полиморфизма эффектов, которая позволяет избежать упоминания переменных эффектов в исходном коде. Это достигается путем распространения способности окружающей среды вовнутрь, а не накопления союзов потенциальных эффектов вовне. 

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

Программирование с эффектами и обработчиками находится в зачаточном состоянии. Мы вносим свой вклад в изучение будущих возможностей, особенно в сочетании с другими формами системы богатого типа.

 https://hackage.haskell.org/package/Frank

 https://github.com/cmcl/frankjnr 

Песочница на основе транзакций для JavaScript

Одна из вещей, которая калечит JavaScript в браузере, – это необходимость в песочнице. С кодом, поступающим из ненадежных источников, действительно не так много выбора, но как лучше реализовать песочницу?

Современные приложения JavaScript состоят из сценариев различного происхождения, которые загружаются во время выполнения. Поскольку не все эти источники одинаково надежны, выполнение этих сценариев должно быть изолировано друг от друга. Однако некоторые сценарии должны иметь доступ к состоянию приложения, а некоторым может быть разрешено изменять его, сохраняя при этом ограничения конфиденциальности и целостности приложения.  

В этой статье представлен дизайн и реализация DecentJS, встроенной в язык песочницы для полного JavaScript. Это позволяет сценариям работать в настраиваемой степени изоляции с тонким контролем доступа. Он предоставляет область транзакций, в которой эффекты регистрируются для проверки политикой контроля доступа. После проверки журнала эффекты могут быть зафиксированы в состоянии приложения или откатаны. Реализация опирается на прокси JavaScript, чтобы гарантировать полное взаимодействие для всего языка и для всего кода, включая динамически загружаемые скрипты и код, вводимый через eval. Его единственное ограничение заключается в том, что сценарии должны соответствовать строгому режиму JavaScript.

Выпущена версия OCaml 4.04.0

Можно утверждать, что OCaml был скорее источником вдохновения для других языков, чем сам по себе успех, но новая версия по-прежнему достойна новостей. OCaml-это функциональный язык, который включает в себя функции императивного и объектно-ориентированного программирования. 

Новый релиз в основном представляет собой исправление ошибок и небольшие изменения. Самая большая новая функция-это новый профилировщик памяти SpaceTime. 

Полный список изменений и загрузка доступны. 

Котлин 1.0.6

Для поклонников JetBrains тот факт, что доступна новая версия Kotlin, является важной новостью. 

Преобразовать try-finally в use() намерение

Мы продолжаем добавлять намерения для преобразования кода в идиоматический Котлин. IDE теперь автоматически предлагает заменить блок try-finally вызовом use (), когда все, что делает finallyblock, – это закрывает ресурс.

Намерение “Добавить имена для аргументов вызова”

Именованные аргументы помогают повысить читаемость кода. С новым намерением “Добавить имена для аргументов вызова” вы можете легко добавить имя в аргумент или просто заменить имена для всех аргументов вызова сразу.

Есть и другие улучшения IDE и лучшая поддержка Android. 

Чтобы получать информацию о новых статьях на I Programmer, подпишитесь на нашу еженедельную рассылку,подпишитесь на RSS-канал и следуйте за нами в Twitter, Facebook, Google+ или Linkedin.

Комментарии

Сделайте комментарий или Просмотрите существующие комментарии С помощью Disqus


Добавить комментарий