ACM SIGPLAN
ACM SIGPLAN
  • Видео 4 417
  • Просмотров 1 257 069
[Scheme24] Challenges in the Design and Implementation of Teaching Languages for EDSLs
Challenges in the Design and Implementation of Teaching Languages for EDSLs (Video, Scheme 2024)
Jason Hemann
(Seton Hall University)
Abstract: Designing and implementing teaching languages for embedded domain-specific languages (EDSLs) present unique challenges. Teaching language sequences provide linguistic support as novices gradually work up to mastery of a full GPL. New EDSL programmers deserve that same kind of support, and EDSL teaching languages should help bridge the gap between the full complexity of the host-DSL multilanguage and a constrained environment in which students can effectively learn and apply core concepts.
This talk explores the specific difficulties inherent in creati...
Просмотров: 125

Видео

[Scheme24] Tutorial on Program Transformations
Просмотров 12314 дней назад
Tutorial on Program Transformations (Video, Scheme 2024) Jason Hemann (Seton Hall University) Abstract: I will reprise the tutorial/workshop that Nada Amin and I taught at Lambda Jam and Recurse Center in 2013, which in turn is based on exercises from Dan Friedman’s famous programming languages course at Indiana University. I will guide you in writing your own Scheme-to-C translator by demystif...
[Scheme24] Nocksche and Nocko
Просмотров 9914 дней назад
Nocksche and Nocko (Video, Scheme 2024) James Torre (None) Abstract: We present two novel implementations of the combinator calculus Nock, in Racket Scheme (Nocksche) and miniKanren (Nocko). “Nock” is the computational model underlying the Urbit project, intended to support practical systems programming in a functional language for the Urbit OS, network protocol, and native applications. The No...
[Scheme24] Beyond SICP - Design and Implementation of a Notional Machine for Scheme
Просмотров 12114 дней назад
Beyond SICP - Design and Implementation of a Notional Machine for Scheme (Video, Scheme 2024) Kyriel Abad and Martin Henz (National University of Singapore; National University of Singapore) Abstarct: Computer science education has been at the heart of Scheme from the beginning. The language was designed in the 1970s concurrently with the MIT course 6.001 and the textbook “Structure and Interpr...
[Scheme24] A Teaching Language for Specification
Просмотров 7114 дней назад
A Teaching Language for Specification (Video, Scheme 2024) Cameron Moy (Northeastern University) Abstract: Formal software specification deserves a place in the introductory computing curriculum. Many courses covering software specification use proof assistants that are powerful, but often have a steep learning curve. A great deal of such classes must be dedicated to the peculiarities of using ...
[Scheme24] An Implementation of a Visual Stepper in the GRASP Programming System
Просмотров 7914 дней назад
An Implementation of a Visual Stepper in the GRASP Programming System (Video, Scheme 2024) Panicz Godek (None) Abstract: The direct purpose of this paper - as its title suggests - is to present how the visual evaluator extension is implemented in the GRASP programming system. The indirect purpose is to provide a tutorial around the design of GRASP, and in particular - around the architecture of...
[Scheme24] Scheme on WebAssembly: It is happening!
Просмотров 40114 дней назад
Scheme on WebAssembly: It is happening! (Video, Scheme 2024) Andy Wingo (Igalia, S.L.) Abstract: What would it be like if you could write a program in Scheme and then let anyone on the planet run it? With the advent of new standards in web browsers, this day is finally here: the world is our oyster. In this talk, Andy presents Hoot, a new implementation of Guile that targets WebAssembly. Hoot i...
[FProPer24] HVM2: Iteraction Combinator Evaluator
Просмотров 17014 дней назад
HVM2: Iteraction Combinator Evaluator (Video, FProPer 2024) Victor Taelin, Francisco Javier Grecco Carman, Nicolas Abril, and Enrico Zandomeni Borba (Higher Order Company; unaffiliated; Higher Order Company; Higher Order Company) Abstract: We present a preview of HVM2, an efficient and massively parallel GPU and CPU evaluator for a system of extended Interaction Combinators. When compiling non-...
[FProPer24] Functional Sparse Tensor Compilation
Просмотров 4314 дней назад
Functional Sparse Tensor Compilation (Video, FProPer 2024) Shideh Hashemian, and Amir Shaikhha (University of Edinburgh; University of Edinburgh) Presentation at the FProPer 2024 workshop, Sept 6, 2024, icfp24.sigplan.org/home/fproper-2024 Sponsored by ACM SIGPLAN,
[FProPer24] Fusing Gathers with Integer Linear Programming
Просмотров 2614 дней назад
Fusing Gathers with Integer Linear Programming (Video, FProPer 2024) David van Balen, Gabriele Keller, Ivo Gabe de Wolff, and Trevor L. McDonell (Utrecht University, Netherlands; Utrecht University, Netherlands; Utrecht University, Netherlands; Utrecht University, Netherlands) Abstract: We present an Integer Linear Programming based approach to finding the optimal fusion strategy for combinator...
[FProPer24] A comparison of OpenCL, CUDA, and HIP as compilation targets for a functional array(…)
Просмотров 3114 дней назад
A Comparison of OpenCL, CUDA, and HIP as Compilation Targets for a Functional Array Language (Video, FProPer 2024) Troels Henriksen (University of Copenhagen, Denmark) Abstract: This paper compares OpenCL, CUDA, and HIP as compilation targets for Futhark, a functional array language. We compare the performance of OpenCL versus CUDA, and OpenCL versus HIP, on the code generated by the Futhark co...
[FProPer24] Ribbit with Memory Morphisms
Просмотров 3814 дней назад
Ribbit with Memory Morphisms (Video, FProPer 2024) Thaïs Baudon, Gabriel Radanne, and Laure Gonnord (ENS de Lyon & LIP; Inria; Université Grenoble-Alpes - Grenoble INP - LCIS) Abstract: Now integrated in mainstream languages, Algebraic Data Types (ADTs) have established themselves as a nice way to reason about data structures and their manipulation using pattern matching. However, their use in ...
[FProPer24] Tail Modulo Async/Await
Просмотров 4414 дней назад
Tail Modulo Async/Await (Video, FProPer 2024) Vivien GACHET, Gabriel Radanne, and Ludovic Henrio (LIP, Lyon, France; Inria; University of Lyon - ENS Lyon - UCBL - CNRS - Inria - LIP) Abstract: Tail-calls are an essential feature of functional programming languages: they allow to write iterations in a declarative fashion, using simple recursive functions, unbothered by implementation details suc...
[FProPer24] From C to Comonads to Climate: A Functional Programmer's Journey in Array Programming(…)
Просмотров 8714 дней назад
From C to Comonads to Climate: A Functional Programmer's Journey in Array Programming for Good (Video, FProPer 2024) Dominic Orchard (University of Kent; University of Cambridge) Abstract: During my career so far, I seem to have acquired an ear worm, or perhaps established somewhat of a leitmotif in my work: stencil computations over arrays. This idiom is pervasive in many applications, includi...
[Erlang24] Controlled Scheduling of Concurrent Elixir Programs
Просмотров 2514 дней назад
Controlled Scheduling of Concurrent Elixir Programs (Video, Erlang 2024) Luis Eduardo Bueso de Barrio, Lars-Åke Fredlund, Clara Benac Earle, Ángel Herranz, and Julio Mariño (Universidad Politécnica de Madrid, Spain; Universidad Politécnica de Madrid, Spain; Universidad Politécnica de Madrid, Spain; Universidad Politécnica de Madrid, Spain; Universidad Politécnica de Madrid, Spain) Abstract: We ...
[Erlang24] The Benefits of Tierless Elixir/Potato for Engineering IoT Systems
Просмотров 1714 дней назад
[Erlang24] The Benefits of Tierless Elixir/Potato for Engineering IoT Systems
[Erlang24] Elixir-powered Low-income Animal Shelter Support: an Experience Report from Conception(…)
Просмотров 1014 дней назад
[Erlang24] Elixir-powered Low-income Animal Shelter Support: an Experience Report from Conception(…)
[Erlang24] Is this really a refactoring? Automated equivalence checking for Erlang projects
Просмотров 1314 дней назад
[Erlang24] Is this really a refactoring? Automated equivalence checking for Erlang projects
[Erlang24] Erlang on TOAST: Generating Erlang Stubs with Inline TOAST Monitors
Просмотров 1014 дней назад
[Erlang24] Erlang on TOAST: Generating Erlang Stubs with Inline TOAST Monitors
[Erlang24] Erla+: Translating TLA+ Models into Executable Actor-Based Implementations
Просмотров 4014 дней назад
[Erlang24] Erla : Translating TLA Models into Executable Actor-Based Implementations
[Erlang24] Same same but different: A Comparative Analysis of Static Type Checkers in Erlang
Просмотров 614 дней назад
[Erlang24] Same same but different: A Comparative Analysis of Static Type Checkers in Erlang
[Erlang24] Unsafe Impedance: safe languages and safe by design software
Просмотров 1114 дней назад
[Erlang24] Unsafe Impedance: safe languages and safe by design software
[miniKanren24] To Be or Not To Be: Adding Integrity Constraints to stableKanren to Make a Decision
Просмотров 1114 дней назад
[miniKanren24] To Be or Not To Be: Adding Integrity Constraints to stableKanren to Make a Decision
[miniKanren24] Six Ways to Implement Divisibility by Three in miniKanren
Просмотров 1814 дней назад
[miniKanren24] Six Ways to Implement Divisibility by Three in miniKanren
[miniKanren24] Improving stableKanren’s Backward Compatibility
Просмотров 414 дней назад
[miniKanren24] Improving stableKanren’s Backward Compatibility
[miniKanren24] typedKanren: Statically Typed Relational Programming with Exhaustive Matching in(…)
Просмотров 2414 дней назад
[miniKanren24] typedKanren: Statically Typed Relational Programming with Exhaustive Matching in(…)
[miniKanren24] Hosted miniKanren: Reconciling Optimizing Compilation and Extensibility
Просмотров 2914 дней назад
[miniKanren24] Hosted miniKanren: Reconciling Optimizing Compilation and Extensibility
[miniKanren24] A Relational Solver for Constraint-based Type Inference
Просмотров 1314 дней назад
[miniKanren24] A Relational Solver for Constraint-based Type Inference
[miniKanren24] Between Functional and Relational
Просмотров 4014 дней назад
[miniKanren24] Between Functional and Relational
[miniKanren24] Relational Reactive Programming: miniKanren for the Web
Просмотров 2414 дней назад
[miniKanren24] Relational Reactive Programming: miniKanren for the Web

Комментарии

  • @KimberlyRobinson-n2c
    @KimberlyRobinson-n2c 10 дней назад

    我如何从钱包中将我的 89 USDT TRC20 提现到币安请帮帮我 12个钱包恢复短语:《pride》-《pole》-《obtain》-《together》-《second》-《when》-《future》-《mask》-《review》-《nature》-《potato》-《bulb》

  • @shaheerziya
    @shaheerziya 10 дней назад

    Incredible work, must have been tough to do all that formalization!

  • @derekpmoore
    @derekpmoore 14 дней назад

    Sound is lost until 4:35

  • @DaveRoberts308
    @DaveRoberts308 14 дней назад

    Sound gets fixed at the 9 min mark.

  • @AlexBerg1
    @AlexBerg1 15 дней назад

    Amazing presentation! Amazing contributions!

  • @HaraldAchitz
    @HaraldAchitz 16 дней назад

    Fil-C, if performance is not your problem, you already have many options. It could be nice to 'just port' existing code in non-time critical parts without a total - rewrite in a different language. But most of those have already been re-written, so not sure about it

  • @tophy9865
    @tophy9865 17 дней назад

    It's always a fun jumpscare when SPJ is in the audience and asks a question lol

  • @skyblock127
    @skyblock127 17 дней назад

    I saw this video after getting plag in 3 out of 5 assignments😭😭😭

  • @bytefu
    @bytefu 18 дней назад

    As someone who have dabbled in compiler development, I find the Rustlantis talk at 5:40:55 really interesting. If I'll ever want to make my crappy toy compiler with similarly SSA-based IR "production-ready", I'll make sure to use something like that to test it.

  • @kristofferstrom766
    @kristofferstrom766 18 дней назад

    Super low sound volume

    • @leppie
      @leppie 18 дней назад

      Noted that yesterday too, but seems to be fine now (at least with Stable Volume)

  • @ArtemPelenitsyn
    @ArtemPelenitsyn 18 дней назад

    No sound when a slide splash-fills the screen. It's back when we see Simon but it's the smaller part of the video 😢

  • @Fardin.Alizadeh
    @Fardin.Alizadeh 18 дней назад

    do not waste your time on this video!

  • @KailynAbrosimova
    @KailynAbrosimova 19 дней назад

    Thanks for the breakdown! A bit off-topic, but I wanted to ask: I have a SafePal wallet with USDT, and I have the seed phrase. (alarm fetch churn bridge exercise tape speak race clerk couch crater letter). Could you explain how to move them to Binance?

  • @Heater-v1.0.0
    @Heater-v1.0.0 19 дней назад

    Sadly the code in this video is so dark and blurry it's impossible to make it out. Surely in 2024 we could get this right?

  • @aungthuhein007
    @aungthuhein007 19 дней назад

    Do you insist on calling it Fil-C?

  • @droid806
    @droid806 19 дней назад

    Fil-C: interesting, the 2x slowness would be critical for some projects

  • @ProgrammingLovers
    @ProgrammingLovers 19 дней назад

    Very nice lecture about embedded domain specific languages. Some of the problems listed in the lecture like clear error messages and localization are already solved in the Ring programming language.

  • @colltoaction232
    @colltoaction232 19 дней назад

    I'm a fan of this work, thanks for the updates 🙏🏻 Have you heard about Wiring Diagrams from Category Theory?

  • @yousifalfaki4389
    @yousifalfaki4389 19 дней назад

    Good job

  • @vlya1533
    @vlya1533 20 дней назад

    Fil-C: The idea of safe-memory C sounds good per se, but.. unfortunately it's too WIP. Trying to compile small programs leads to many errors like: In file included from "llvm-project-deluge/build/bin/../../pizfix/include/dirent.h:18: /usr/include/x86_64-linux-gnu/bits/dirent.h:25:5: error: unknown type name '__ino_t'; did you mean 'ino_t?", and many others. Then you have no idea what to do if there's no forum to discuss, no people who have worked with it and can share compat issues, and so on.

    • @droid806
      @droid806 19 дней назад

      He said some programs would compile with no changes, most programs would work with minimal changes. So he didn’t say it was 1:1

    • @vlya1533
      @vlya1533 19 дней назад

      @droid806 I see that. I've tried to compile two not-big projects (one on them GTK based, other one is ncurses based), both of them failed to compile because those mentioned dependencies. So I doubt in "most programs". Or quiet likely I'm wrong in something obvious in these attempts, anyway there's no way find out because of lack of community, that what I had in mind.

    • @vytah
      @vytah 17 дней назад

      @@vlya1533 You'd have to recompile GTK and ncurses as well

    • @vlya1533
      @vlya1533 17 дней назад

      @@vytah there's a lot of musl peculiarities too, then linker scripts (like tinfo for ncurses), and so on. In my case I narrowed test buildings down to the basic things, then after getting errors related to compiler itself like "Functions may not have common linkage ptr @pizlonated_limit_error in function pizlonated_limit_error fatal error: error in backend: Broken function found, compilation aborted!" and some others, I decided to not push too much efforts trying to fix everything, and better to wait a bit when it'll be pollished enough.

  • @PaulSebastianM
    @PaulSebastianM 25 дней назад

    Image having all the functionality of like fnm, nvm, npm, pnpm, prettier, tsc, jest, test runner, doc building, etc., in one single tool... A true unified platform experience! Almost like cargo for Rust, but more. It's like what projects like Rome/Biome, etc., are just starting to do for the JS world... If this kind of tooling comes to OCaml, it might become my favorite tool to write projects.

  • @mattpdz
    @mattpdz 26 дней назад

    The lecture looks very interesting! Unfortunately, this video has pretty bad audio. I'm wondering, is there any chance for a re-uploading with a better quality or is it lost in time?

    • @ndmath
      @ndmath 19 дней назад

      I am seconding this. I am also very interested in this lecture. Hopefully, better audio quality is maybe possible.

  • @Kaptime
    @Kaptime 26 дней назад

    10:18

  • @lial4357
    @lial4357 27 дней назад

    blub

  • @steffensmolka4063
    @steffensmolka4063 29 дней назад

    Awesome talk, Mark!

  • @nicolasr8710
    @nicolasr8710 Месяц назад

    Very interesting

  • @Lucas-pj9ns
    @Lucas-pj9ns Месяц назад

    quite cool! accidentally diving down the DreamCoder rabbithole on a Saturday afternoon, and this seems much more runnable on my laptop

  • @joeldinolt5541
    @joeldinolt5541 Месяц назад

    Really appreciated this.

  • @Olivman7
    @Olivman7 Месяц назад

    Sound quality is horrible. Any chance you have a better audio lying around? Or subtitles?

  • @Olivman7
    @Olivman7 Месяц назад

    0:50 Quick note that nobody is ever going to read: Even if everybody in the audience knows what "CSR" means (Compressed Sparse Rows?), the talk maybe later be watched by people only who have no idea, so it's still worth throwing out a quick slide.

  • @mooncop
    @mooncop Месяц назад

    whoa

  • @muhammadidrees5218
    @muhammadidrees5218 Месяц назад

    Beautifully described. This is super awesome

  • @albertzak
    @albertzak Месяц назад

    31:42 Welcome & Opening (Peter van Hardenberg, Geoffrey Litt, Joshua Horowitz) 38:03 Keynote: The Meaning of LIVE (Jonathan Edwards) 1:24:56 Definitions and Dimensions of Liveness (Joshua Horowitz) Block 1: Visual Systems 2:31:30 Subsequently: Telling stories with pictures makes programs (Marcel Goethals) 2:45:00 Code flow canvas - a generic visual programming system (Maikel van de Lisdonk) 2:55:45 Snappets: a VR animation system based on Projective Geometric Algebra (Hamish Todd) 3:13:27 Inkling: Sketching Dynamic Systems (Marcel Goethals, Alessandro Warth, Ivan Reese) 3:28:48 Arroost: Unblocking creation with friends (Lu Wilson) 3:47:48 Q&A Block 1 Block 2: Textual Systems 5:34:22 Run, Build and Grow Small Systems Without Leaving Your Text Editor (Albert Zak, Karl M. Göschka) 5:49:06 TAPE: From direct to programmatic and back (Ian Clester) 6:05:17 Diff-based interactive compiler debugging and testing (Luyu Cheng, Lionel Parreaux) 6:16:06 Example-driven development: bridging tests and documentation (Oscar Nierstrasz, Andrei Chiş, Tudor Gîrba) 6:26:27 Live Programming a Live Programming Environment: An Experience Report (Elliot Evans, Philippa Markovics, Martin Kavalar, Andrea Amantini, Jack Rusher) 6:41:58 Q&A Block 2 Block 3: Substrates 7:34:15 Manifold: Throwing Together Software Systems (Jeff Lindsay) 7:49:40 EYG a predictable, and useful, programming language (Peter Saxton) 7:58:08 DocuApps: Ampleforth Documents as Applications (Gilad Bracha) 8:05:47 ScrapSheets: Async Programs in a Reactive 2D Environment (Taylor Troesh) 8:14:21 Scoped Propagators (Orion Reed) 8:24:02 Q&A Block 3 8:43:08 Closing & Farewell (Peter van Hardenberg, Geoffrey Litt, Joshua Horowitz)

  • @ARBB1
    @ARBB1 Месяц назад

    Very entertaining talk!

  • @CristinaColla
    @CristinaColla Месяц назад

    Great speach, Federico Cassano 👏🏻👏🏻👏🏻

  • @KennethFriedman
    @KennethFriedman Месяц назад

    16:42 is the beginning of the interview with Alan.

  • @Roibarkan
    @Roibarkan Месяц назад

    5:46:59 Making Sense of Multi-Threaded Application Performance at Scale with NonSequitur

  • @Roibarkan
    @Roibarkan Месяц назад

    I really enjoyed Prof. Hermans' historical work tracking down the potential roots of the how CS perception has changed in the 70s. Personally I sympathize with the 'hard = valuable" being sometimes strange or non inclusive. On the other hand - I also agree that objective metrics for value are hard to come by

  • @romactv
    @romactv Месяц назад

    Speaker introduction starts at 7:48, talk starts at 9:22

  • @spdegabrielle
    @spdegabrielle Месяц назад

    7:40:49 DSLs in Racket

  • @Roibarkan
    @Roibarkan Месяц назад

    1:21:02 Fil-C: memory safety with fanatical C/C++ compatibility

  • @jonseltzer321
    @jonseltzer321 Месяц назад

    Yikes. Volume is quite low from Gilad.

  • @fawwn
    @fawwn Месяц назад

    came for the tode got absolutely amazed by felienne! normalise sharing fleshed out thought provoking studies. lu did amazing as well, lovely talks all around :) also haskell

  • @densidad13
    @densidad13 Месяц назад

    Came here for Felienne's talk (3:22:00) and find her work very important! Research in all fields, including "hard" technological and theoretical, must have human studies to put them in context and to make things better (as she makes the case for computer science and PL). Is incredible that questions like "why is this valuable and for who?" or "who would use this and for what purpose?" are seem as naive and not worthy of a research project. Great talk!

    • @KimMens
      @KimMens Месяц назад

      Loved her observation that science is so often too much about being hard: choosing a scientific problem that is intellectually rewarding just because it is hard to solve. And that hard work to make something more simple to use is often frowned upon or harder to publish. But keep on the good work and your focus on the actual value of the research you do, Felienne. I was moved by your talk.

  • @DevineLuLinvega
    @DevineLuLinvega Месяц назад

    3:58:42 After Felienne's excellent talk, it's unbelievable that this dickhead wasn't pulled away from the microphone during Q&A by the event organizers. edit: This person's name is James Noble.

  • @thepiratepeter4630
    @thepiratepeter4630 Месяц назад

    This is really cool

  • @generalyoutubewatching5286
    @generalyoutubewatching5286 Месяц назад

    At least tell me when it starts.

  • @Roibarkan
    @Roibarkan Месяц назад

    7:39:21 What Programmers and Lawyers Get Wrong About Privacy Policies

  • @Roibarkan
    @Roibarkan Месяц назад

    6:09:08 Should We Balance? Towards Formal Verification of the Linux Kernel Scheduler (NEAT paper)

  • @Roibarkan
    @Roibarkan Месяц назад

    6:28:06 note that the bugfix in slide 39 has”idle_smt == -1” which is incorrect, and would cause the function to return false for all cpus in case we enter that statement. Happily the actual patch presented in slide 40 is correct. 😊