Introduction topics: any volunteer?

At the latest meeting of the editorial board (members are: @Niko , @PaulSpencer and me) we discussed what topics to cover in the coming months.

Among other things we identified a series of introductory presentations that we think would help more people learning about Language Engineering.

We are now looking for speakers to give presentations on these subjects.
Would you like to volunteer? Or would you know someone who could give a presentation on those topics?

Introductory topics:

  • Introduction to LLVM
  • Introduction to EMF
  • Introduction to Compilers
  • Introduction to IDES: typical features and how to build them
  • Introduction to binary code generation
  • Introduction to Rascal
  • Introduction to Lisp
  • Introduction to Roslyn
  • Introduction to Xtext
  • Introduction to Xtend
  • Introduction to ANTLR
  • Introduction to code optimization (in compilers)
5 Likes

I can think of a couple of other topics that would benefit from being bequeathed with an introductory presentation:

  • Projectional editing
  • ASTs and their management (runtime/in-memory representations, how to do opposites and reverse references, how to [de-]serialize, etc.)
  • Parsing (high-level)
  • Type systems
  • etc.

These are topics that most seasoned practitioners are probably familiar with, but that freshly-onboarded practitioners might not be familiar with, or might not know this under the same terms. Once people have this knowledge, introductions to specific tools probably make more sense for them.

1 Like

I agree with all of them. I think it will be a matter of finding the volunteers and define an order but over time it would be nice to have all of these topics presented.

Hi Federico, do you think that an overview of HDLs (Hardware Description Languages) as a subclass of DSLs can be of some interest to the community?

2 Likes

I would be interested.

1 Like

Hi @ldesantis , yes, I would be very interested and given also Niko is interested I think we can mark it as approved :smiley:
@elisa.costantini is in charge of planning the meetups, so she will contact you to pick a date, depending on when we have spots available

Thank you for volunteering, I am looking forward to your presentation!

1 Like

Hi @ldesantis, I will contact you by email for more information and set up a date for the presentation.

Thank you, for your interest!
Elisa

1 Like

I’m thinking about possible audience scope for these introductory presentations: is it just us (i.e., the Strumenta community), or would it make sense to record these presentations to put them on YouTube? (Possibly as a 2-stage: trial the presentation for/with this community, then process feedback and record for real.)

As soon as I have time again (you know, post-book…) I would love to do such introductory presentations, but it also would make sense for me on the professional level to make such things available to a wider audience.

2 Likes

I like the idea of not having it recorded in general, but agree with meinte that these introductions could be considered a special case.

I think that ideally, we could invite external people to register to the community (which is free and immediate) to watch the intros. I understand the point you and @PaulSpencer make that recording the intros could be useful, however, I think that recording some of the presentations would be confusing: people who miss some presentations thinking they were going to be recorded, other presenters could ask to have some of their presentations recorded. I also think that it is valuable to have a place where we can discuss freely, without having to worry if a question is not brilliant or a presentation needs to be revised.

Both recorded presentations and live, ephemeral presentations are valuable. I think we cannot get both at the same time

I would encourage that!
In my opinion, it would be a good approach to do a “trial run” in the community, collect questions, and then revise the presentation and record it, in a more polished form, to make it permanently available.

Yes, I fully understand that :slight_smile: Indeed I think that the presenter could do the recording on his own after the meetup, without the need to coordinate with the community. Those videos should be owned and branded by the presenter. The community could be a place where to promote them, of course. In my opinion, if the presenter controls how these videos are made they can decide if to make a single video or multiple short videos, they can decide how to promote such videos, they can be more promotional (e.g., refer a lot to books, courses, and consulting services they are offering).

1 Like

I know and like Lisp and I can do an introduction to it. However, Lisp is many things together and it’s been around for decades so there is already plenty of introductory material. Maybe it would be interesting to focus on “Lisp for language engineers”?

5 Likes

To me it seems interesting!

Two more suggestions:

  • introduction to Clojure
  • Introduction to Erlang/Elixir
1 Like

For interested in Lisp perhaps can watch this course from MIT, freely available in OpenCourseWare, that includes video lectures, book, exercises, …

Video lectures: Video Lectures | Structure and Interpretation of Computer Programs | Electrical Engineering and Computer Science | MIT OpenCourseWare

There is a (interactive) version of the book for Javascript and another one that compares code in both languages

1 Like

SICP is very high-quality material. However, it’s a thorough introduction to programming using Scheme, a Lisp dialect; it’s not an introduction to Lisp for experienced developers and language engineers (though one can learn Lisp with it).

Another good introduction is Practical Common Lisp by Peter Seibel, which is also available online for free.

I am a newcomer and not sure if this discussion is still rolling, Anyway, If you are interested I have a background on the machine to machine (M2M) communication languages.

1 Like

Talking about the introduction let me also inform you that I have recorded a lecture for my students that provides a very basic introduction to computing including topics like a programming language, binary language, alphabet, binary alphabet, syntax, semantics, coding system, computer science. The recording is available at

https://youtu.be/uetPHGH_TAY

I am curious to learn how it works for experienced practitioners.

2 Likes

Hi all

I’m a recent member.

I enjoyed the recent Lisp talk and I’m looking forward to the HDLs talk this week.

I have some thoughts on possible future topics:

  • #pragmas as DSLs vs new languages, e.g. OpenMP, OpenACC, HLS, embedded systems directives, …

  • programming languages for Quantum Computers, e.g. OpenQASM, Q#, Silq

  • formal verification, proof assistants: Coq, Isabelle, …

  • dependently typed languages, e.g. Idris

  • type systems: what’s the sweet spot for particular application types, e.g. little web apps vs safety critical systems?

  • compiler-compiler landscape/history: where did compiler-compilers come from, what’s state of the art now, what’s good/bad, e.g. from META I/II, lex/yacc, ANTLR, PEGs, …

I don’t consider myself an expert or specialist in any of these, just interested in all and a student of some.

Thanks.

David

3 Likes

Hi David, thank you for the feedback

I do not understand this one well

For the other topics: I would also like to see them discussed!

Thanks Federico.

What I am wondering by this item is: where is the intersection between the need for a new language and the use of directives such as #pragmas in a language like C to extend the language in interesting ways? For example, OpenMP has somewhat declarative #pragmas that tell the compiler how to unroll a loop, what thread scheduling approach to use.

David