News for hackers. Stuff that matters.
Re:Show HN: A complete Bash parser in JavaScript transpiled ... by monocasa on Wednesday May 16, 2018 @05:59PM (#17086833)
> but generating machine code is quite different

It really isn't though. PCC just walked the AST, writing out text to a file with hardly any optimizations just like most of what people call 'transpilers'. But you wouldn't call a c compiler to asm a transpiler, right? Pretty much everything that gets attributed to some intrinsic difference between source-source and source-machine compilers is just a function of the immature tooling on the web.

Re:Show HN: A complete Bash parser in JavaScript transpiled ... by sigjuice on Wednesday May 16, 2018 @06:09PM (#17086887)
Also, source-to-source compiler can be shortened to compiler. The phrase source-to-source is redundant.
Re:Show HN: A complete Bash parser in JavaScript transpiled ... by tlrobinson on Wednesday May 16, 2018 @07:23PM (#17087257)
Should this Wikipedia page not exist then? https://en.wikipedia.org/wiki/Source-to-source_compiler
Re:Show HN: A complete Bash parser in JavaScript transpiled ... by monocasa on Wednesday May 16, 2018 @07:33PM (#17087310)
I mean, it should exist according to wiki's rules since there are so many people using the term. Wiki intentionally doesn't try to independently verify any research, but just serves as a collation of ideas.

What I would do is ask 'what part there is any different than any other compiler?'

Re:Show HN: A complete Bash parser in JavaScript transpiled ... by tlrobinson on Wednesday May 16, 2018 @07:38PM (#17087336)
It's a type of compiler. Just like a truck is a type of vehicle, and a car is another type of vehicle.
Re:Show HN: A complete Bash parser in JavaScript transpiled ... by omeid2 on Wednesday May 16, 2018 @08:34PM (#17087616)
They both have four wheels and transport atoms.

Why do you think it is helpful to be unambiguous between atoms that make up a human or atoms of any goods in the back of a truck? /s

Re:Show HN: A complete Bash parser in JavaScript transpiled ... by monocasa on Wednesday May 16, 2018 @09:17PM (#17087870)
Except that there's a true formal (in fact legal) distinction between a car and a truck (they have different emissions standards). The whole distinction between a 'transpilers' and other compilers on the other hand is 'what is the user going to do with the output'.
Re:Show HN: A complete Bash parser in JavaScript transpiled ... by tlrobinson on Wednesday May 16, 2018 @10:18PM (#17088195)
That's not the disinction I've seen. I like Wikipedia's:

> translates between programming languages that operate at approximately the same level of abstraction

That's fairly straightforward, though a bit subjective (which doesn't preclude a word from having meaning)

Re:Show HN: A complete Bash parser in JavaScript transpiled ... by sigjuice on Wednesday May 16, 2018 @09:48PM (#17088056)
It shouldn't. There are several issues with the article and it should be deleted. None of the cited references actually support transpiler or source-to-source compiler as credible or noteworthy.
Re:Show HN: A complete Bash parser in JavaScript transpiled ... by sakuronto on Wednesday May 16, 2018 @06:49PM (#17087094)
what about high-level-language-to-high-level-language compiler?
Re:Show HN: A complete Bash parser in JavaScript transpiled ... by monocasa on Wednesday May 16, 2018 @07:05PM (#17087172)
Nope.

There's the (albeit not 100% correct) meme that C is portable PDP-11 asm. What is correct in my mind is that PCC has much fewer, much less complicated transformations to go to PDP-11 (or M68k) asm than Babel does to go from ES-next to ES5.

But for some reason Babel is a transpiler because it's all high level and that's magically different. And no one in their right mind would attempt to call the c compiler of the 1980s a transpiler.

Re:Show HN: A complete Bash parser in JavaScript transpiled ... by svnsets on Wednesday May 16, 2018 @08:07PM (#17087488)
The only difference between the two in my mind is that the output from a transpiler is likely going to have a ton of bloat, require additional transforming, and be a much larger amount of code than the sum of the inputs. Whereas something like the Closure Compiler actually optimizes and eliminates dead code. They are the same thing though from an ideological standpoint though.
Re:Show HN: A complete Bash parser in JavaScript transpiled ... by monocasa on Wednesday May 16, 2018 @08:23PM (#17087564)
I mean, early PCC didn't have data flow analysis, or eliminate dead code, and was known for head scratching levels of stuff like spilling registers on the stack that didn't need to be spilled. Was the c compiler of the 1980s a transpiler?
Re:Show HN: A complete Bash parser in JavaScript transpiled ... by sigjuice on Wednesday May 16, 2018 @09:28PM (#17087936)
Even the Babel project has the good taste to call themselves a compiler. https://babeljs.io says this in very large letters

Babel is a JavaScript compiler.

Re:Show HN: A complete Bash parser in JavaScript transpiled ... by mvdan on Wednesday May 16, 2018 @06:41PM (#17087043)
Point taken; yes, when I said they were still different, I meant the simplicity of the tool and how its output is higher level than machine code.

But as you all say, this is just a spectrum. Perhaps the future generation will call JavaScript a low-level language :)

Re:Show HN: A complete Bash parser in JavaScript transpiled ... by monocasa on Wednesday May 16, 2018 @06:45PM (#17087070)
It's really not even a spectrum. Babel is a fancier compiler than PCC was.
Re:Show HN: A complete Bash parser in JavaScript transpiled ... by iforgotpassword on Thursday May 17, 2018 @05:47AM (#17089978)
Or those experts who insist to correct you when you say you're programming something in perl/php/python. "Uhm no, you mean scripting, because the code is run on an interpreter." One of the fastest ways to lose all my respect.
Re:Show HN: A complete Bash parser in JavaScript transpiled ... by svnsets on Thursday May 17, 2018 @01:25PM (#17093345)
Anytime the word "coding" is mentioned: "No, you mean programming. Coding refers to developing only codes and ciphers."