4 ms·
My favorite part of the Wuffs github page has to be the definition it gives for Dependent Types > ...Dependent types are a way to implement compile-time bounds
by com2kid 6y ago
My favorite part of the Wuffs github page has to be the definition it gives for Dependent Types
> ...Dependent types are a way to implement compile-time bounds checking, but they're not the only way, and there's more to programming languages than their type systems. Wuffs does not use dependent types.
Wuffs looks really interesting! I don't think I've ever even heard of a language that is designed to only be used in an auxiliary role along side another general purpose programming language!
Edit: As pointed out below, scripting languages like Lua are used in an auxiliary role, but in a very different way! Wuffs is designed for use in the deepest most crucial parts of an app, where as scripting languages are typically GC'd and used at the very highest levels, often times by animations, game designers, or even end users!
- coldtea 6y ago>I don't think I've ever even heard of a language that is designed to only be used in an auxiliary role along side another general purpose programming language! Embeddedable scripting languages come to mind. E.g.: "Lua is a lightweight, high-level, multi-paradigm programming language designed primarily for embedded use in applications."
- com2kid 6y agoAh, of course. But opposite use case! Lua is used at the very top level of a program, sometimes its even user accessible! Wuffs is the exact opposite, it is designed for use in the deepest levels of a program! Very cool idea.
- zellyn 6y agolex, yacc?
- tyingq 6y agoRagel might be a related example: http://www.colm.net/open-source/ragel/ http://www.colm.net/open-source/ragel/
- stefan_ 6y agoThere is T0, part of BearSSL. This presentation has an explanation of it (starts slide 19): https://t1lang.github.io/NorthSec-20190516.pdf https://t1lang.github.io/NorthSec-20190516.pdf
- drudru 6y agoAh - forgot about this. Thx for posting this. These little languages really keep the system footprint tiny compared to OpenSSL.
- masklinn 6y ago> Wuffs looks really interesting! I don't think I've ever even heard of a language that is designed to only be used in an auxiliary role along side another general purpose programming language! It's positioned somewhat separately as you don't codegen from it, but TLA+? It exists to model and verify a program, but you still write the program separately.
- deleted 6y ago[deleted]
- kccqzy 6y agoI don't like that your quote elided the actual definition of dependent types. It reflects badly on the project for people who didn't bother to read the full quote. For completeness, this seems to be the full quote: > A type that depends on another value. For example, a variable n’s type might be “the length of s”, for some other slice-typed variable s. Dependent types are a way to implement compile-time bounds checking, but they’re not the only way, and there's more to programming languages than their type systems. Wuffs does not use dependent types.
- fpoling 6y agoWasm does at runtime what Wuffs does at the compile time for a typical slowdown of 2-3 times. As with Wuffs there is no allocation in the basic Wasm, the program works on pre-allocated buffers.
- vanderZwan 6y agoYou can grow wasm memory while running a wasm module, can't you?
- blt 6y agoHalide (https://halide-lang.org/ https://halide-lang.org/) is one example, designed for implementing low-level image processing functions.
- zucker42 6y agoFuthark is a auxillary language that targets parallel processors (e.g. GPUs) to be used alongside a general purpose language.
- anewhnaccount2 6y agoRegex?