TOGVM-Spec
Pluto.jl
TOGVM-Spec | Pluto.jl | |
---|---|---|
2 | 78 | |
0 | 4,886 | |
- | - | |
4.4 | 9.5 | |
9 months ago | 6 days ago | |
PHP | JavaScript | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
TOGVM-Spec
-
The AST Typing Problem
Make each AST node an RDF node and then you can cram whatever information into it you want. That's the approach I've been taking with https://github.com/TOGoS/TOGVM-Spec/, anyway.
Of course, for conveniently and safely manipulating in memory in $programming_language, you're probably going to want to define some structs/ADTs/whatever that only contain the data a given compilation stage is actively working with.
I've been thinking that what I need is a system that allows me to quickly define different lower-level datatypes for representing different views of the conceptual types and automate, to some degree, translation between them, so then each part of the system can work with objects designed specifically to be processed by it with minimal fuss.
A technical reason for avoiding those specialized types might be that the computer then has to spend more time transforming from one schema to the next. I would think that in practice this isn't any worse than having to do a lot of null checks.
A more human reason is that it could bean a combinatorical explosion of AST types. I guess this is where my idea about lightweight variations comes in.
In TypeScript this kind of thing might not be so bad, since any object can be downcast with no cost to a type that contains a subset of the information, and variations on types can be easily defined without even necessarily being named, e.g. `ASTNode & HasResultType & HasSourceLocation`.
-
Six programming languages Iād like to see
As far as graph-based languages and languages with arbitrary metadata and relationships between objects are concerned, I've been mulling over a language where expressions are represented as RDF graphs and that has built-in support for manipulating RDF graphs. I've use the concepts as an intermediate representation for functional expressions in a few different systems (including Factorio's map generator), but haven't yet had the motivation to really flesh it out into a full-blown language. https://github.com/TOGoS/TOGVM-Spec
Pluto.jl
-
Potential of the Julia programming language for high energy physics computing
I thought that notebook based development and package based development were diametrically opposed in the past, but Pluto.jl notebooks have changed my mind about this.
A Pluto.jl notebook is a human readable Julia source file. The Pluto.jl package is itself developed via Pluto.jl notebooks.
https://github.com/fonsp/Pluto.jl
Also, the VSCode Julia plugin tooling has really expanded in functionality and usability for me in the past year. The integrated debugging took some work to setup, but is fast enough to drop into a local frame.
https://code.visualstudio.com/docs/languages/julia
Julia is the first language I have achieved full life cycle integration between exploratory code to sharable package. It even runs quite well on my Android. 2023 is the first year I was able to solve a differential equation or render a 3D surface from a calculated mesh with the hardware in my pocket.
- Pluto.jl: Simple, reactive programming environment for Julia
-
Ask HN: Why don't other languages have Jupyter style notebooks?
Re Julia there is also pluto.jl that is another notebook-like environment for julia. It's been a few years since I played with it but it looked cool, for example it handles state differently so you don't get into the same messes as with ipython notebooks. https://plutojl.org/
- Pluto: Simple Reactive Notebooks for Julia
-
Looking for a Julia gui framework with a demo like EGUI
For this, Notebooks are often used. Julia offers a uniquely nice and interactive Pluto notebook for the web https://github.com/fonsp/Pluto.jl
- Excel Labs, a Microsoft Garage Project
-
IPyflow: Reactive Python Notebooks in Jupyter(Lab)
I believe this is what Pluto sets out to do for Julia.
I used it as part of the āComputational Thinkingā with Julia course a year or two back. Even then the beta software was very good and some of the demos the Pluto dev showed were nothing short of amazing
https://plutojl.org/
- For Julia is there some thing like VSCode's python interactive window?
-
What have you "washed your hands of" in Python?
I think what you want is Pluto!
-
Show HN: Out of order execution in Jupyter notebooks is a solved problem
I like how Pluto.jl handles this:
> Pluto offers an environment where changed code takes effect instantly and where deleted code leaves no trace. Unlike Jupyter or Matlab, there is no mutable workspace, but rather, an important guarantee:
> At any instant, the program state is completely described by the code you see.
[1] https://github.com/fonsp/Pluto.jl
What are some alternatives?
impulse - Impossible Dev Tools for React and Tailwind
vim-slime - A vim plugin to give you some slime. (Emacs)
dafny - Dafny is a verification-aware programming language
rmarkdown - Dynamic Documents for R
sdk - The Dart SDK, including the VM, dart2js, core libraries, and more.
Weave.jl - Scientific reports/literate programming for Julia
prusti-dev - A static verifier for Rust, based on the Viper verification infrastructure.
Dash.jl - Dash for Julia - A Julia interface to the Dash ecosystem for creating analytic web applications in Julia. No JavaScript required.
docs - Red-related user documentation repository
IJulia.jl - Julia kernel for Jupyter
DataLang - Specification and refernce implementation of DataLang
Tables.jl - An interface for tables in Julia