Lightning Talks

C meta-programming for the masses with C%: cmod

L.lightningtalks
Sirio Bolaños Puchet
<p><strong>C%</strong> (from "C with mods") is an experimental meta-programming language that aims to make coding in C more efficient and fun!</p> <p>Together with <strong>cmod</strong>, the reference pre-processor/code generator (written using <strong>C%</strong> itself), this project enables the C programmer with generic meta-programming constructs such as: parameterized verbatim code snippets, mapping code to static data tables (in TSV or JSON format), multi-pass code evaluation (allowing meta-meta-programming), compile-time command execution (allowing code generation from any other software/language), etc. as well as C-specific constructs such as: function types, named parameters, selection over strings and structs, etc. The <strong>C%</strong> standard library provides convenience constructs for inclusion in C programs.</p>
Some of the things that C% aims to make achievable are: Reusability: Avoid code duplication through parameterized verbatim code snippets. Consistency: Use the same data at different locations and across compilation units by mapping static data tables. Efficiency: Achieve common functionality through C idioms standardized in keywords and the C% standard library. Concision: Write and work with concise code and leave the gory details to the generated code. Expressivity: Better express the intent of code by avoiding boilerplate noise. Transparency: Inspect all the generated code and have it checked by the compiler. Abstraction: Identify similar things in your code and handle them in a uniform manner. Extensibility: Once uniform handling is in place, adding an additional element becomes easier. Beyond C meta-programming, C%'s generic keywords enable meta-programming in other languages such as Python, Flex/Bison, etc. For full documentation, please refer to the README.

Weitere Infos

Format lightningtalk

Weitere Sessions

05.02.22
Lightning Talks
Thomas Lauf
L.lightningtalks
<p>Time tracking is a task many people have to deal with. Be it for writing bills for your client, creating time reports for your company, or simply because you are curious what you are doing with your time all day. Timewarrior is a tool that lets you track your time easily from the command line – it does its job then gets out of your way.</p>
05.02.22
Lightning Talks
Bradly Alicea
L.lightningtalks
<p>As a means of enabling distributed collaboration, open-source enables people from many different disciplinary backgrounds to participate in research projects to which they would otherwise not have access. Additionally, open-source allows for reconfigurable expertise, or the ability to combine people from different backgrounds in ways depending on the task at hand. This talk will discuss the challenges associated with spontaneous interdisciplinary, in addition to opportunities provided by ...
05.02.22
Lightning Talks
Peter Czanik
L.lightningtalks
<p>A desktop thermometer that displays relative humidity is useful, but it does not provide continuous monitoring. In comes the Raspberry Pi: it is small, inexpensive, and has many sensor options, including temperature and relative humidity. It can collect data around the clock, do some alerting, and forward data for analysis.</p>
05.02.22
Lightning Talks
Eric Charles
L.lightningtalks
<p>Jupyter notebook is a tool that allows Data Scientist to analyse dataset. However, it is not easy to create a custom user interface integrated in an existing application.</p> <p><code>Jupyter React</code>, https://github.com/datalayer/jupyter-react, an open-source library, fills that gap and provides components that a developer can easily integrate in any React.js application.</p>
05.02.22
Lightning Talks
Drew DeVault
L.lightningtalks
<p>qbe is an optimizing compiler backend which consumes programs in a simple intermediate language, optimizes them, and emits assembly for x86_64, aarch64, or riscv64, aiming to achieve "70% of the performance" of advanced compilers like LLVM in "10% of the code". This talk will briefly introduce qbe and its intermediate language, explain how it works and what it's capable of, and go over some sample programs which can be written in it.</p>
05.02.22
Lightning Talks
Huy Ngo
L.lightningtalks
<p>InterPlanetary Wheels (IPWHL) are platform-unique, singly-versioned Python built distributions backed by IPFS for security and reproducibility. Using the peer-to-peer file system IPFS, the distributions have the advantage of being easily replicated and not having a single point of failure, thus are more resilient. While this project targets at Python package in particular, the idea can be similarly applied to other software distributions such as Linux distributions.</p>
05.02.22
Lightning Talks
Ilya Kreymer
L.lightningtalks
<p>The modern web has viewers for all sorts of formats that can be loaded in the web browser, except for other web sites. The 'Save Page As' feature doesn't really work for most modern web pages. This talk will briefly cover the work of the Webrecorder project, from creating a new web archiving format to browser extensions and viewers, in making archiving and preserving the modern web more accessible to all!</p>