Talk:Programming Languages Diversity Project

Add topic
From Meta, a Wikimedia project coordination wiki
Latest comment: 4 months ago by Mr N in topic Hello

Hello[edit]

I talked to @Hogü-456 at the WikiCon 2023 in Linz. Now I find the time to write it down. Some time ago, I tried to develop a kind of programming language for professionals with limited IT knowledge. Although it is not open source, I am happy to share some of my experiences with my first domain specific language. Currently I have limited capacity for wiki projects, but I hope this place will be suitable.

After investigating some already existing programming concepts I ended up with some domain specific language (in short: DSL) based on an already existing human-readable data serialization language. I tried to avoid the Halting problem with limiting the DSL to be not turing complete. For my purpose was it ok to lock down the language but for a real programming language it would not work.

Here are some lessons that I have learnt or that have been confirmed for me:

  • Involvement of the intended target group(s) is just as important as diverse and interdisciplinary teams
  • Exchange of experience with experienced creators of programming languages can be very helpful
  • Good theoretical groundwork helps, but clean technical implementation is also necessary

I started with a search for reference books and found the following:

  • Parr, Terence; (2010). Language implementation patterns / create your own domain-specific and general programming languages. The pragmatic programmers. Raleigh, NC [u.a.]: Pragmatic Bookshelf. ISBN 978-1-934356-45-6. 
  • Fowler, Martin; (2010). Domain-specific languages /. The Addison-Wesley signature series. Upper Saddle River, NJ ; Munich [u.a.]: Addison-Wesley. ISBN 978-0-321-71294-3. 

It is mainly about designing languages and building interpreters (and parsers too).

I also found it very interesting to look at different kind of programming (visual programming, spreadsheet, text based) and programming paradigms (e.g.: object oriented, imperative, functional).

Maybe the following tools are helpful:

Mr N (talk) 00:11, 29 December 2023 (UTC)Reply