You are viewing archived messages.
Go here to search the history.

Colin ๐Ÿ•ฐ๏ธ 2022-01-23 06:24:14

Hello everyone!

After a year of work, I am finally presenting the result of my Master's thesis!๐ŸŽ‰๐ŸŽ“

I developed and studied a live programming environment that can provide meaningful information about the runtime behaviour of a program in practically every edit state, while retaining the intuitive and flexible interface of text editors.

To provide meaningful runtime behaviour information in edit states containing incomplete programs with syntax, type or logic errors, the programming environment has to isolate errors and continue functioning for unaffected parts of the program.

I call this error tolerance.

Tolerance of syntax errors is realized with an integrated structure editor that incorporates a notion of incompleteness I call construction sites.

Essentially, these are abstract syntax tree nodes that can contain arbitrary characters and other AST nodes.

Evaluation of the program continues "around errors" instead of aborting with an exception or resulting in some "undefined" value.

Because the results this produces are much more informative than an exception or undefined value, they can help the programmer find the sources of issues and resolve them much better.

Because the programming environment is often evaluating unfinished code, evaluation diverges much more often.

The programming environment handles this smoothly by only evaluating parts of the runtime information that are displayed and providing a mode of evaluation where the number of reductions is limited by a configurable number.

This enables partial results in cases of non-termination.

You can try out the editor for yourself at https://cdfa.github.io/frugel/ ๐Ÿ‘€ or by downloading a much better performing native executable from GitHub.

I also created a demo video ๐Ÿ“บ (WebArchive version (still uploading), Google Drive version) and attached a draft version of the thesis.

I hope to follow up this week with a version that fixes some bugs.

This Wednesday, I will be giving an online presentation about it.

If you are interested in attending, I can PM you a link to watch it.

Please let me know what you think!

Colin 2022-01-27 12:07:57

I just uploaded the presentation! https://archive.org/details/presentation_202201

Sorry if the volume is a bit low. If it's too quiet, I can upload a louder version later.

The last 20 minutes is questions.

Yair Chuchem 2022-01-30 12:13:15

Nice work!

In section โ€œ7.3 Lamduโ€:

For example, if we attempt to insert a number where a function is expected, the expression is transformed to an application term with a hole for the argument. This term can then be typed as a free type variable. However, the number is inserted in the function position of the application term, which still results in a type error.

The last sentence is incorrect. The number is actually inserted in the argument of the application term in the underlying language, and there is no type error.

Perhaps the confusion stems from the sugared surface language showing it as a number with a question mark next to it (which we call a โ€œfragmentโ€ with a number in it).

Yair Chuchem 2022-01-30 14:47:22

I would like to hear about your ideas for more advanced solutions ๐Ÿ™‚

One idea we have in mind is that you should be able to โ€œrecordโ€ results of IO interactions and then re-evaluate from recorded runs. Then you could modify the program up to a point where the IO actions that it invoked changed.

James Haliburton 2022-01-27 14:04:24

I wanted to share one of our designers' projects built with Noodl. We've recently created a Mapbox integration, so this is a bit of an in-house experiment. https://www.youtube.com/watch?v=XgYiyfoXCHM&ab_channel=Noodl

Ivan Reese 2022-01-27 19:17:25

[Moved from top level, original message by @James Haliburton]

(and here's the deployment: https://the-historical-landings-of-meteorites.noodl.app/)

Ivan Reese 2022-01-27 19:19:19

[This is me now, :)]

Further to what ๐Ÿ’ฌ #introduce-yourself@2022-01-27T19:14:10.621Z in #introduce-yourself , can you share some additional information about what's happening in this video that might be of interest in our community? How does this work relate to other similar efforts in the past? What are the novel things that we should pay particular attention to?

Jason Morris 2022-01-28 21:28:57

Video demo of Blawx v1 early stage proof of concept user-friendly Rules as Code tool. Declarative logic, natural language explanations, hypothetical reasoning, zero-click deploy to API, block-based controlled natural language programming environment, live code generation. All feedback very welcome. ~7m. https://www.youtube.com/watch?v=NxPkR79ENFs

Tom Larkworthy 2022-01-29 14:56:18

yeah pretty cool to make logic programming accessible. It does look like it lowers a barrier to entry.

Dan Stocker 2022-01-30 19:44:53

Hi FoC,

We just released version Alpha 1.8.0 of CRANQ (cranq.io)!

For those that don't know, CRANQ is - despite what the website says - a general-purpose "low-coding" IDE and code repository. It compiles to JavaScript (npm packages), and is fully extensible from within. This release is still far from our original vision - lacking in instrumentation, types, search, and general UX - but is usable enough to prototype APIs and integrations.

Quick download links:

Thoughts, feedback welcome.

We're also looking for case studies - projects that we help you build in CRANQ. DM me if you'd like to participate in our alpha programme.

abeyer 2022-01-30 21:46:30

despite what the website says...

Thoughts, feedback welcome

My first thought would be that if the website doesn't actually say what it is, that's a problem.

After looking at the website, the second problem is that what it does actually say is prone to making me assume that whatever you're peddling lies somewhere on the spectrum from speculative nonsense to outright fraud. No offense intended, and I get why marketing to the crypto crowd might make sense... but having that front and center isn't likely to make me take something seriously as a general tool.

abeyer 2022-01-30 21:48:16

That said this does look like an interesting tool, so maybe reconsider how it's presented