Live data from Hacker News

GSL – a Universal Code Generator

github.com

21–30 of 30 posts

Re: GSL – a Universal Code Generator

#21
post #14

Earlier quoted context omitted.

Look, this can be hard to grasp. In zproject we write models of our library APIs. From these we get stuff as exotic as bindings in Java, python, Ruby, node, and all scripts to build them.

How does the system automatically manage differences between various languages when binding?

Think of it as as generic templating library/system. It has no knowledge of the output, or the differences. The benefit is that you write one "unified" say model, or some sort of input. And then write the translation to different languages (if you want, it can just be one), and have it generate for you automatically based on the rules you coded into the translation logic.

Re: GSL – a Universal Code Generator

#25
post #13

There is more to GSL than XML processing. GSL was used to write ZeroMQ along with many other pieces of software. GSL can also be used to write FSM (finite state machines) and an earlier variant called Libero, was used to write the very well regarded, Xitami multithreaded web server. I just installed it yesterday so haven't been able to fully suss out how I will use it. Hintjens also wrote the CLASS style guide/ subse…

The ZeroMQ core library does not use gsl. We use it in two projects, zproto and zproject, which are nice examples of what is possible without going too meta. I started explaining zproject in my [Scalable C]( http://Scalablec.org ) book.

Good stuff, looking forward to reading more of your book.

Re: GSL – a Universal Code Generator

#26

A great write-up on his theory of model-driven development and the tech that underpinned most of iMatix: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&c... Their website is a slide-show demonstrating their amazing work: http://www.imatix.com/ Generating servers from state machines and such: http://hintjens.com/blog:75 SMT kernel for portable, multi-threaded, fast code: http://legacy.imatix.com/html/smt/…

That Google link on top came out of nowhere and doesn't work. Here's the actual link to the great write-up on MOP and philosophy:

http://download.imatix.com/mop/introduction.html

Re: GSL – a Universal Code Generator

#27
Back in 1982 Synon Inc. introduced its Synon/2 CASE tool based on similar ideas. The product targeted minicomputers using green screens. The same model could produce target code in COBOL, RPGIII or PL/I. We then toyed with the idea of meta-models which could model vertical applications such as accounting systems or inventory control. We believed that the next generation of modeling would use logic programming with constraint solving to make smart models (At the time the Japanese 5th generation project was underway). Alas, the project proved too difficult and it was abandoned. Perhaps it is time to revisit the idea.

Re: GSL – a Universal Code Generator

#28

Back in 1982 Synon Inc. introduced its Synon/2 CASE tool based on similar ideas. The product targeted minicomputers using green screens. The same model could produce target code in COBOL, RPGIII or PL/I. We then toyed with the idea of meta-models which could model vertical applications such as accounting systems or inventory control. We believed that the next generation of modeling would use logic programming with co…

Sorry, meant 1986.

Re: GSL – a Universal Code Generator

#29
Given how much focus he places on code generation and metaprogramming it's ASTounding that there is not a single reference to Lisp to be found in that wall of text. I agree with a lot of what he says, but his total ignorance (must be ignorance rather than deliberate) of Lisp metaprogramming weakens a lot of his arguments for GSL specifically.

Re: GSL – a Universal Code Generator

#30
post #13

There is more to GSL than XML processing. GSL was used to write ZeroMQ along with many other pieces of software. GSL can also be used to write FSM (finite state machines) and an earlier variant called Libero, was used to write the very well regarded, Xitami multithreaded web server. I just installed it yesterday so haven't been able to fully suss out how I will use it. Hintjens also wrote the CLASS style guide/ subse…

The ZeroMQ core library does not use gsl. We use it in two projects, zproto and zproject, which are nice examples of what is possible without going too meta. I started explaining zproject in my [Scalable C]( http://Scalablec.org ) book.

Are there useful heuristics on where GSL is most applicable? Where it is relevant and powerful and not too meta; just the right amount of abstraction to represent a problem and its solution.

For example, "GSL is likely a good choice at , such as . And it may not be appropriate for , such as . Because of ."

I looked through the GSL website and also Scalable C and wasn't able to find any descriptions that place limits on the applications of GSL. A description of what a complex something isn't, from an expert, is almost as important as what that thing is.

Your writing style in Scalable C is incredible and enlightening. I will be studying and referencing that book, even if I'm not directly coding C.

Post reply on HN