Nemerle is a programming language that is similar to C# but includes additional functional programming features. It aims to support desired features from future versions of C# earlier than they are implemented. Some key features of Nemerle include support for monads, type inference, pattern matching, and algebraic data types. Additionally, many features are implemented via macros that extend the language without requiring changes to the core compiler.
Fusing Modeling and Programming into Language-Oriented ProgrammingMarkus Voelter
Modeling in general is of course different from programming (think: climate models). However, when we consider the role of models in the context of “model-driven”, i.e., when they are used to automati- cally construct software, it is much less clear that modeling is different from programming. In this paper, I argue that the two are conceptually indistinguishable, even though in practice they traditionally emphasize different aspects of the (conceptually indistinguishable) common approach. The paper discusses and illustrates language-oriented programming, the approach to {modeling| programming} we have successfully used over the last 7 years to build a range of innovative systems in domains such as insurance, healthcare, tax, engineering and consumer electronics. It relies on domain-specific languages, modular language extension, mixed notations, and in particular, the Jetbrains MPS language workbench.
In this talk I will present a number of issues that we run against in our work of building DSLs for and with customers, mostly on top of MPS. This is not an MPS wishlist, but rather the attempt at identifying general areas where tool support or even the conceptual approach are not yet as mature as for the basics of language engineering: syntax, type systems, generators and basic IDE support. An ideal outcome of this session would be the formation of groups of people who will work on some of these issues in the future. These issues include the construction of debuggers for various language paradigms, realtime incremental transformations of models, interactive guidance for end users (clippy for DSLs :-)), a practically-usable formalism for defining semantics from which interpreters and generators can be derived, as well as the more diffuse requirement for more “liveness” in DSLs of non-trivial complexity and model sizes.
We consider semitransparent pistons in the presence of extra dimensions. It
is shown that the piston is always attracted to the closest wall irrespective of
details of the geometry and topology of the extra dimensions and of the cross
section of the piston. Furthermore, we evaluate the zeta regularized determinant for this configuration.
Fusing Modeling and Programming into Language-Oriented ProgrammingMarkus Voelter
Modeling in general is of course different from programming (think: climate models). However, when we consider the role of models in the context of “model-driven”, i.e., when they are used to automati- cally construct software, it is much less clear that modeling is different from programming. In this paper, I argue that the two are conceptually indistinguishable, even though in practice they traditionally emphasize different aspects of the (conceptually indistinguishable) common approach. The paper discusses and illustrates language-oriented programming, the approach to {modeling| programming} we have successfully used over the last 7 years to build a range of innovative systems in domains such as insurance, healthcare, tax, engineering and consumer electronics. It relies on domain-specific languages, modular language extension, mixed notations, and in particular, the Jetbrains MPS language workbench.
In this talk I will present a number of issues that we run against in our work of building DSLs for and with customers, mostly on top of MPS. This is not an MPS wishlist, but rather the attempt at identifying general areas where tool support or even the conceptual approach are not yet as mature as for the basics of language engineering: syntax, type systems, generators and basic IDE support. An ideal outcome of this session would be the formation of groups of people who will work on some of these issues in the future. These issues include the construction of debuggers for various language paradigms, realtime incremental transformations of models, interactive guidance for end users (clippy for DSLs :-)), a practically-usable formalism for defining semantics from which interpreters and generators can be derived, as well as the more diffuse requirement for more “liveness” in DSLs of non-trivial complexity and model sizes.
We consider semitransparent pistons in the presence of extra dimensions. It
is shown that the piston is always attracted to the closest wall irrespective of
details of the geometry and topology of the extra dimensions and of the cross
section of the piston. Furthermore, we evaluate the zeta regularized determinant for this configuration.
2010-06-26 Open-Access Textbooks (Text and Academic Authors Association Confe...Nicole Allen
Introduction to open-access publishing for authors, co-presented with Heather Joseph from SPARC
6 June 2010
Text and Academic Authors Association Conference
Minneapolis, MN
2010-06-26 Open-Access Textbooks (Text and Academic Authors Association Confe...Nicole Allen
Introduction to open-access publishing for authors, co-presented with Heather Joseph from SPARC
6 June 2010
Text and Academic Authors Association Conference
Minneapolis, MN
SiriusCon 2015 - Breathe Life into Your Designer!melbats
You have your shiny new DSL up and running thanks to the Eclipse Modeling Technologies and you built a powerful tooling with graphical modelers, textual syntaxes or dedicated editors to support it. But how can you see what is going on when a model is executed ? Don't you need to simulate your design in some way ? Wouldn't you want to see your editors being animated directly within your modeling environment based on execution traces or simulator results?
The GEMOC Research Project designed a methodology to bring animation and execution analysis to DSLs. The companion technologies required to put this in action are small dedicated components (all open-source) at a "proof of concept" maturity level extending proven components : Sirius, Eclipse Debug, Xtend making such features within the reach of Eclipse based tooling. The general intent regarding those OSS technologies is to leverage them within different contexts and contribute them to Eclipse once proven strong enough. The method covers a large spectrum of use cases from DSLs with a straightforward execution semantic to a combination of different DSLs with concurrent execution semantic. Any tool provider can leverage both the technologies and the method to provide an executable DSL and animated graphical modelers to its users enabling simulation and debugging at an early phase of the design.
This talk presents the approach, the technologies and demonstrate it through an example: providing Eclipse Debug integration and diagram animation capabilities for Arduino Designer (EPL) : setting breakpoints, stepping forward or backward in the execution, inspecting the variables states... We will walk you through the steps required to develop such features, the choices to make and the trade-offs involved. Expects live demos with simulated blinking leds and a virtual cat robot ! This talks presents also xCapella an industrial use case onwhich the Gemoc methodology was applied.
This talks was presented at SiriusCon 2015 in collaboration with Jérôme Le Noir from Thales.
The Arduino Designer documentation is available on : https://github.com/mbats/arduino/wiki/Documentation
Beyond JavaScript Frameworks: Writing Reliable Web Apps With Elm - Erik Wende...Codemotion
In times where a jungle of JavaScript frameworks wants to solve every conceivable problem in web app development, Elm offers a different approach. Elm is a functional language that compiles to JavaScript. It has a user-friendly compiler, a sound type system, built-in immutability and lots of other features that come in handy when developing large, hopefully bug-free, single-page apps. While having fun in the process! In this talk you'll see how Elm works and learn how to use it to build a web app. More importantly, you'll learn the pros and cons of using it over a JavaScript-based solution.
Perl is a sophisticated, general purpose programming language with a rich software development environment. It is platform independent, high level and easy to use, designed to make the difficult jobs easy. It is a portable and scalable language that provides better structure for large programs than any other computer language. It's simple structure, a clearly defined syntax and relatively few keywords that allows the student to pick up the language in a relatively short period of time.and Debug it easily with its built-in debugger. Perl is one of the three P’s in the LAMP stack. According to eweek.com ‘Perl is used in virtually 100 percent of the Fortune 500, in a wide range of mission-critical systems’. According to Active Perl, there are 200 Thousand ActivePerl downloads each month.
(Costless) Software Abstractions for Parallel ArchitecturesJoel Falcou
Performing large, intensive or non-trivial computing on array like data structures is one of the most common task in scientific computing, video game development and other fields. This matter of fact is backed up by the large number of tools, languages and libraries to perform such tasks. If we restrict ourselves to C++ based solutions, more than a dozen such libraries exists from BLAS/LAPACK C++ binding to template meta-programming based Blitz++ or Eigen. If all of these libraries provide good performance or good abstraction, none of them seems to fit the need of so many different user types.
Moreover, as parallel system complexity grows, the need to maintain all those components quickly become unwieldy. This talk explores various software design techniques - like Generative Programming, MetaProgramming and Generic Programming - and their application to the implementation of a parallel computing librariy in such a way that:
- abstraction and expressiveness are maximized - cost over efficiency is minimized
We'll skim over various applications and see how they can benefit from such tools. We will conclude by discussing what lessons were learnt from this kind of implementation and how those lessons can translate into new directions for the language itself.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
4. Nemerle is notable
Environment
Managed compiler written in Nemerle
Visual Studio 2008 plugin with debugger and autocomplete
Free IDE based on Visual Studio Isolated Shell
Sharpdevelop plugin
Mono support
NAnt plugin
5. Nemerle is notable
Why not try?
Nemerle is almost a superset of
C#, so if you know C# you can
use Nemerle.
6. Nemerle is notable
Why not try?
By the way, Nemerle's compiler
can compile C# code, so you
can try it on exising C# project
33. Nemerle is notable
The proper use of goto
The only one legal usage of goto is
exit from nested loops
Nemerle provides a better
solution named code blocks
47. Nemerle is notable
What is FP?
Typical signs of FP
Monads
Type inference
Pattern matching
Algebraic data types
Built-in tuple support
Local (nested) functions
52. Nemerle is notable
Monads
Monad is creational functional programming design
pattern that deals with computation creation.
The upcoming C# 5 async/await feature is particular
case of a monad (creation of asynchronous
computation).
Computation expressions are monads + monoids.
Nemerle supports computation expressions.
53. Nemerle is notable
Monads
Consequently Nemerle supports
the upcoming C# 5
async/await feature right now
among the other monads.
60. Nemerle is notable
Algebraic data type semantic
After we rewrite OOP code with variant (ADT) we
should consider
`Sum' as a constructor of type `Tree'
`l',`r' as its params (not a Tree.Sum's elds)
But if they are params, how get them back from a
`Tree' typed object?
61. Nemerle is notable
Algebraic data type Disassembling (pattern matching)
Pattern matching solves this problem. It checks if object is
constructed with constructor specied in a pattern and if it is true
it binds actual parameters of constructor with names of variables
the pattern.
Let's see on the following example.
63. Nemerle is notable
Algebraic data type OOP vs. FP
OOP
72 SLoC (pretty printing with
visitor pattern)
FP
25 SLoC (pretty printing with
pattern matching)
67. Nemerle is notable
Almost all Nemerle features are macros
Don't worry
Nemerle is a simple language and almost all features are
macros parts of standard library, not a language.
Macros is a plugin to compiler. You can write your own
macros to introduce new language constructs or eDSL.
68. Nemerle is notable
Almost all Nemerle features are macros
You've already meet macros in
this presentation, they are. . .
69. Nemerle is notable
Almost all Nemerle features are macros
LINQ Object initialization Anonymous types
Late (dynamic) XML-Literals
INotifyPropertyChanged macro Safe navigation
Design by contract Computation expressions
Lazy macro
and even
if while foreach
70. Nemerle is notable
Advanced macros
Beside macros copying useful features from another
languages there are macros adding unique features.
One of them is Nemerle.Peg. It is a macro-library
that allows to describe grammar in the attribute and
during the compilation necessary methods for parsing
text in this grammar will be added to the class.
Also there are some macros supporting design
patterns.
72. Nemerle is notable
Metric
Some metric of using Nemerle
in home pet long-term research
project
uniquation.com formula search
engine
73. Nemerle is notable
Metric
Two years ago rst prototype was rewritten from C# to
Nemerle in 3 days. Nemerle experience before 0.
Code was reduced by 46%.
Last month a new macro library (Nemerle.Peg) was applyed.
Code was reduced by 15%.
74. Nemerle is notable
Additional materials
Nemerle on google code
Nemerle site
Sources code of examples shown in this presentation