Top 1,000 Features Creators Resources Blog Explorer Download
GitHub icon

dslx

< >

dslx is a programming language created in 2020.

#2351on PLDB 4Years Old


Example from the web:
fn cast_to_array(x: u6) -> u2[3] { x as u2[3] } fn cast_from_array(a: u2[3]) -> u6 { a as u6 } fn concat_arrays(a: u2[3], b: u2[3]) -> u2[6] { a ++ b } test cast_to_array { let a_value: u6 = u6:0b011011; let a: u2[3] = cast_to_array(a_value); let a_array = u2[3]:[1, 2, 3]; let _ = assert_eq(a, a_array); // Note: converting back from array to bits gives the original value. let _ = assert_eq(a_value, cast_from_array(a)); let b_value: u6 = u6:0b111001; let b_array: u2[3] = u2[3]:[3, 2, 1]; let b: u2[3] = cast_to_array(b_value); let _ = assert_eq(b, b_array); let _ = assert_eq(b_value, cast_from_array(b)); // Concatenation of bits is analogous to concatenation of their converted // arrays. That is: // // convert(concat(a, b)) == concat(convert(a), convert(b)) let concat_value: u12 = a_value ++ b_value; let concat_array: u2[6] = concat_value as u2[6]; let _ = assert_eq(concat_array, concat_arrays(a_array, b_array)); // Show a few classic "endianness" example using 8-bit array values. let x = u32:0xdeadbeef; let _ = assert_eq(x as u8[4], u8[4]:[0xde, 0xad, 0xbe, 0xef]); let y = u16:0xbeef; let _ = assert_eq(y as u8[2], u8[2]:[0xbe, 0xef]); () }

Language features

Feature Supported Token Example
Comments ✓
// A comment
Line Comments ✓ //
// A comment
Semantic Indentation X

View source

- Build the next great programming language · About · Acknowledgements · Extensions · Day 630 · Donate · feedback@pldb.io