- Видео 4 417
- Просмотров 1 257 069
ACM SIGPLAN
США
Добавлен 18 ноя 2018
Special Interest Group on Programming Languages
The ACM Special Interest Group on Programming Languages (SIGPLAN) explores programming language concepts and tools, focusing on design, implementation, practice, and theory. Its members are programming language developers, educators, implementers, researchers, theoreticians, and users.
All videos published on this channel are Copyright 2022-24 ACM.
Please email SIGPLAN-AV for video take down requests or corrections.
The ACM Special Interest Group on Programming Languages (SIGPLAN) explores programming language concepts and tools, focusing on design, implementation, practice, and theory. Its members are programming language developers, educators, implementers, researchers, theoreticians, and users.
All videos published on this channel are Copyright 2022-24 ACM.
Please email SIGPLAN-AV for video take down requests or corrections.
[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...
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
我如何从钱包中将我的 89 USDT TRC20 提现到币安请帮帮我 12个钱包恢复短语:《pride》-《pole》-《obtain》-《together》-《second》-《when》-《future》-《mask》-《review》-《nature》-《potato》-《bulb》
Incredible work, must have been tough to do all that formalization!
Sound is lost until 4:35
Sound gets fixed at the 9 min mark.
Amazing presentation! Amazing contributions!
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
It's always a fun jumpscare when SPJ is in the audience and asks a question lol
I saw this video after getting plag in 3 out of 5 assignments😭😭😭
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.
Super low sound volume
Noted that yesterday too, but seems to be fine now (at least with Stable Volume)
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 😢
do not waste your time on this video!
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?
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?
Do you insist on calling it Fil-C?
Fil-C: interesting, the 2x slowness would be critical for some projects
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.
I'm a fan of this work, thanks for the updates 🙏🏻 Have you heard about Wiring Diagrams from Category Theory?
Good job
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.
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
@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.
@@vlya1533 You'd have to recompile GTK and ncurses as well
@@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.
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.
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?
I am seconding this. I am also very interested in this lecture. Hopefully, better audio quality is maybe possible.
10:18
blub
Awesome talk, Mark!
Very interesting
quite cool! accidentally diving down the DreamCoder rabbithole on a Saturday afternoon, and this seems much more runnable on my laptop
Really appreciated this.
Sound quality is horrible. Any chance you have a better audio lying around? Or subtitles?
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.
whoa
Beautifully described. This is super awesome
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)
Very entertaining talk!
Great speach, Federico Cassano 👏🏻👏🏻👏🏻
16:42 is the beginning of the interview with Alan.
5:46:59 Making Sense of Multi-Threaded Application Performance at Scale with NonSequitur
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
Speaker introduction starts at 7:48, talk starts at 9:22
7:40:49 DSLs in Racket
1:21:02 Fil-C: memory safety with fanatical C/C++ compatibility
Yikes. Volume is quite low from Gilad.
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
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!
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.
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.
This is really cool
At least tell me when it starts.
7:39:21 What Programmers and Lawyers Get Wrong About Privacy Policies
6:09:08 Should We Balance? Towards Formal Verification of the Linux Kernel Scheduler (NEAT paper)
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. 😊