Koffect

所属分类:编程语言基础
开发工具:kotlin
文件大小:0KB
下载次数:0
上传日期:2023-09-19 15:37:53
上 传 者sh-1993
说明:  一种面向上下文的编程语言,支持多个编程范例,重点是面向上下文的程序设计。,
(A context-oriented programming language with support for multiple programming paradigms with a focus on context oriented programming.,)

文件列表:
.idea/ (0, 2023-12-11)
.idea/codeStyles/ (0, 2023-12-11)
.idea/codeStyles/Project.xml (263, 2023-12-11)
.idea/codeStyles/codeStyleConfig.xml (149, 2023-12-11)
.idea/inspectionProfiles/ (0, 2023-12-11)
.idea/inspectionProfiles/Project_Default.xml (276, 2023-12-11)
.idea/kotlinc.xml (175, 2023-12-11)
.idea/misc.xml (458, 2023-12-11)
.idea/vcs.xml (180, 2023-12-11)
CS5001/ (0, 2023-12-11)
CS5001/CS5001CapstoneAssessment.md (4399, 2023-12-11)
CS5001/CS5001DesignDiagrams.md (334, 2023-12-11)
CS5001/CS5001DesignDiagrams/ (0, 2023-12-11)
CS5001/CS5001DesignDiagrams/CS5001DesignDiagram_D0.svg (9509, 2023-12-11)
CS5001/CS5001DesignDiagrams/CS5001DesignDiagram_D1.svg (16811, 2023-12-11)
CS5001/CS5001DesignDiagrams/CS5001DesignDiagram_D2.svg (34394, 2023-12-11)
CS5001/CS5001FinalReport.md (26988, 2023-12-11)
CS5001/CS5001MilestonesTimelineEffortMatrix.md (4374, 2023-12-11)
CS5001/CS5001ProjectConstraints.md (4798, 2023-12-11)
CS5001/CS5001TaskList.md (4085, 2023-12-11)
CS5001/CS5001TeamContract.md (608, 2023-12-11)
CS5001/CS5001UserStories.md (1019, 2023-12-11)
CS5001/CS5001_Fall_Design_Presentation.pptx (20535401, 2023-12-11)
CS5001/Project_Biography.md (2732, 2023-12-11)
CS5001/Project_Description.md (1474, 2023-12-11)
LICENSE (35149, 2023-12-11)
build.gradle.kts (337, 2023-12-11)
design_notes/ (0, 2023-12-11)
design_notes/async.md (7028, 2023-12-11)
design_notes/context.md (9219, 2023-12-11)
design_notes/correctness.md (11031, 2023-12-11)
design_notes/tasklist.md (4029, 2023-12-11)
gradle.properties (27, 2023-12-11)
gradle/ (0, 2023-12-11)
gradle/wrapper/ (0, 2023-12-11)
... ...

# Koffect Programming Language ## Contents - [Koffect](https://github.com/JarnaChao09/Koffect/blob/master/#koffect) - [Language Goals](https://github.com/JarnaChao09/Koffect/blob/master/#language-goals) - [Syntax Examples](https://github.com/JarnaChao09/Koffect/blob/master/#syntax-examples) - [Feature List](https://github.com/JarnaChao09/Koffect/blob/master/#feature-list) - [Inspriations](https://github.com/JarnaChao09/Koffect/blob/master/#inspirations--prior-arts--similar-features) ## Koffect Welcome to Koffect! A research language focusing on the applications of context-oriented/context-aware programming to general purpose programming. From applications of contextual rigor (such as mathematical proof writing), to resource management (such as opening and closing files/connections/sockets), to domain specific languages, programming contains a lot of implicit contexts and mental context management. This project aims to create a language around the concept of explicit contexts to reduce the mental gymnastics and boilerplate needed to maintain context dependent code. ## Language Goals The goal of this language is to research and implement a general purpose programming language specializing in context-oriented programming. Some areas of focus that this project hopes to tackle are: - The application of context-oriented programming to tackle metaprogramming challenges - The application of context-oriented programming to ensure code correctness, through the modelling of context dependent fields such as mathematical correctness or asynchronous code - The application of context-oriented programming to model real world contextual dependent situations in code with minimal boilerplate - The application of context-oriented programming to the creation and modelling of domain specific languages ## Syntax Examples > TODO: Finalization of language in progress ## Feature List > TODO: Finalization of language in progress ## Inspirations / Prior Arts / Similar Features - [Effects Bibliography](https://github.com/JarnaChao09/Koffect/blob/master/https://github.com/yallop/effects-bibliography) - Collection of relative literature applying to algebraic effects (and coeffects by proxy) - [Koka](https://github.com/JarnaChao09/Koffect/blob/master/https://koka-lang.github.io/koka/doc/index.html) - Language implementing algebraic effect handlers with lexical effect tracking - [Eff](https://github.com/JarnaChao09/Koffect/blob/master/https://www.eff-lang.org/) - Language implementing algebraic effect handlers working on general first-class computational effects - [Effekt](https://github.com/JarnaChao09/Koffect/blob/master/https://effekt-lang.org/) - Language implementing algebraic effect handlers with effect safety and effect polymorphism following Scala syntax - [Coeffect](https://github.com/JarnaChao09/Koffect/blob/master/https://tomasp.net/coeffects/) - Language implementing algebraic coeffects through implicit parameters - [OCaml Multicore](https://github.com/JarnaChao09/Koffect/blob/master/https://github.com/ocaml/ocaml) - Ocaml 5.0 Multicore added unchecked effect handlers for concurrent programming - [Kotlin Context Receivers](https://github.com/JarnaChao09/Koffect/blob/master/https://github.com/Kotlin/KEEP/blob/master/proposals/context-receivers.md) - Kotlin 1.6.20 added experimental support for functions with multiple receivers, also coined as context receivers - [Scala contextual/implicit parameters](https://github.com/JarnaChao09/Koffect/blob/master/https://docs.scala-lang.org/tour/implicit-parameters.html) - Scala 2 has contextual/implicit parameters which were later refined in Scala 3 to use the `using`/`given` syntax - [Haskell implicit parameters](https://github.com/JarnaChao09/Koffect/blob/master/https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/implicit_parameters.html) - Haskell implements implicit parameters as part of type system leading to full type system security with implicit parameters - [Python Context Managers](https://github.com/JarnaChao09/Koffect/blob/master/https://docs.python.org/3/reference/datamodel.html#context-managers) - Python implements context handlers with the `__enter__` and `__exit__` methods to model runtime defined contexts - [Ruby Refinements](https://github.com/JarnaChao09/Koffect/blob/master/https://ruby-doc.org/core-3.1.0/Refinement.html) - Ruby implements lexical monkey patching (introduction of a context into a scope) with refinements - [Javascript Explicit Resource Management](https://github.com/JarnaChao09/Koffect/blob/master/https://github.com/tc39/proposal-explicit-resource-management) - Javascript TC39 proposal (currently) in stage 3 of adding resource managers using the `using` keyword and `Symbol.dispose` method - [C# `using` and `IDisposable`](https://github.com/JarnaChao09/Koffect/blob/master/https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/statements/using) - C# resource management through the use of the `IDisposable` interface and `using` keyword - [Java try-with-resource and `AutoCloseable`](https://github.com/JarnaChao09/Koffect/blob/master/https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html) - Java resource management through the use of the `Closeable` and `AutoCloseable` interfaces with the `try` keyword

近期下载者

相关文件


收藏者