• Home
  • Search
  • Представлення монадичних ефектів у немонадичній формі
  • https://doi.org/10.15407/pp2024.02-03.116Copy DOI Icon

Представлення монадичних ефектів у немонадичній формі

Show More
  • Abstract
  • Literature Map
  • References
  • Similar Papers
Abstract

Modern programming relies heavily on effects systems. In the context of the development of programming languages, two approaches to understanding effects are distinguished: the first recognizes an effect as a characteristic of a program that affects the execution environment, separating it from a simple calculation (that is, effects are not taken into account in the system of language types, which is typical for imperative programming languages); the second considers an effect as an aspect of program interpretation that affects the process of its interpretation (such effects are considered in the type system as higher-order types, and this approach is characteristic of functional programming). In industrial programming, the first approach is preferred because of its efficiency in rapid development and less complex concepts. However, this leads to the loss of the possibility of automatic analysis of effects using type systems and increases the difficulty of finding errors. Monads are a convenient tool for describing effects because they have a built-in computation composition operation and can sink values into the monadic environment. A direct contextual representation of effects can be useful for application developers because it reduces cognitive load from syntactic noise while preserving information about effects in data types. This representation also allows for cross-platform applications that can use both monadic and non-monadic effect systems. The paper describes the ergonomic programming language interface for working with monadic effects, which encapsulates the logic of computation and associated non-computational operations in the effect system monad, and describes the direct context encoding technique. The translation of the direct context encoding into the monadic form is implemented in the form of a Scala compiler plugin, which is available as an open source. The use of conditional effects compilation to organize cross-platform interfaces that combine different methods of implementing effects on different platforms is also discussed.

Similar Papers
  • PDF
  • Research Article
  • Citations7

Designing types for R, empirically

  • Nov 13, 2020
  • Proceedings of the ACM on Programming Languages
  • Alexi Turcotte +3
  • Conference Article

Databases and Programming

  • Jan 14, 2015
  • Peter Buneman
  • Supplementary Content

Co-Contextual Type Systems: Contextless Deductive Reasoning for Correct Incremental Type Checking

  • Mar 02, 2020
  • TUbilio (Technical University of Darmstadt)
  • Edlira Kuci
  • Single Report
  • Citations3

Fully Generic Programming Over Closed Universes of Inductive-Recursive Types

  • Jan 01, 2000
  • Larry Diehl
  • Research Article
  • Citations6

A Variation of the q-Painlevé System with Affine Weyl Group Symmetry of Type E7(1)

  • Dec 10, 2017
  • Symmetry, Integrability and Geometry: Methods and Applications
  • Hidehito Nagao
  • PDF
  • Research Article
  • Citations2

Predicting Fork Visibility Performance on Programming Language Interoperability in Open Source Projects

  • Jan 01, 2018
  • International Journal of Advanced Computer Science and Applications
  • Bee Bee +1
  • Book Chapter
  • Citations3

On object extension

  • Jan 01, 1998
  • Luigi Liquori
  • PDF
  • Research Article
  • Citations8

Knowing when to ask: sound scheduling of name resolution in type checkers derived from declarative specifications

  • Nov 13, 2020
  • Proceedings of the ACM on Programming Languages
  • Arjen Rouvoet +4
  • Research Article

Teaching Type Systems Implementation with Stella, an Extensible Statically Typed Programming Language

  • Jul 09, 2024
  • Electronic Proceedings in Theoretical Computer Science
  • Abdelrahman Abounegm +2
  • Journal Issue
  • Citations1

Proceedings Eighth International Workshop on Programming Language Approaches to Concurrency- and Communication-cEntric Software

  • Feb 10, 2016
  • Electronic Proceedings in Theoretical Computer Science
  • Simon J Gay +1
  • Journal Issue

Proceedings Tenth Workshop on Programming Language Approaches to Concurrency- and Communication-cEntric Software

  • Apr 08, 2017
  • Electronic Proceedings in Theoretical Computer Science
  • Vasco T Vasconcelos
  • Research Article

Safe typing of functional logic programs with opaque patterns and local bindings

  • Jan 17, 2014
  • Information and Computation
  • Francisco J López-Fraguas +2
  • Book Chapter
  • Citations16

Subtyping and Assignment in Database Programming Languages

  • Jan 01, 2000
  • Richard Connor +2
  • Conference Article

Mechanized Metatheory Revisited: An Extended Abstract (Invited Paper)

  • Jan 01, 2018
  • DROPS (Schloss Dagstuhl – Leibniz Center for Informatics)
  • Dale Miller
  • PDF
  • Research Article
  • Citations41

The next 700 relational program logics

  • Dec 20, 2019
  • Proceedings of the ACM on Programming Languages
  • Kenji Maillard +3
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.