Stories
Slash Boxes
Comments

SoylentNews is people

posted by on Wednesday January 11 2017, @03:31AM   Printer-friendly
from the assembly-made-easy dept.

Have you ever wondered what really goes on when your computer takes a higher-level language, like Javascript or C, and turns it into something it can read? Quine8 (Q8) is a simple virtual machine that takes the most basic building block a computer can operate on, bytecode and runs it at a fraction of the speed of a real CPU, allowing you to watch it run each step of the way.


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 5, Informative) by stormwyrm on Wednesday January 11 2017, @05:20AM

    by stormwyrm (717) on Wednesday January 11 2017, @05:20AM (#452373) Journal

    Modern computers though are far more complicated beasts than the C-64 I first got started with. Back in those days it was absolutely essential to know assembly language, and this was still true with the 16-bit IBM PC. On modern hardware though, given how much more complex and varied they are these days, programming to the bare metal is not really that feasible these days. You might be able to manage it on a Raspberry Pi or similar device but on an ordinary PC it’s a very long shot. That said, I don’t think these famous quotes from Donald Knuth’s TAOCP are wrong:

    ”By understanding a machine-oriented language, the programmer will tend to use a much more efficient method; it is much closer to reality.”

    ”People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird.”

    A lot of what’s wrong with the world of software development today is that people, even professional programmers, are so isolated from the lower levels of their computers that they don’t really understand them.

    --
    Numquam ponenda est pluralitas sine necessitate.
    Starting Score:    1  point
    Moderation   +4  
       Insightful=1, Informative=3, Total=4
    Extra 'Informative' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   5  
  • (Score: 2) by RamiK on Thursday January 12 2017, @12:49AM

    by RamiK (1813) on Thursday January 12 2017, @12:49AM (#452793)

    I don’t think these famous quotes from Donald Knuth’s TAOCP are wrong

    It's very hard to draw a line between computer literacy and bad real-world practices when your x86 "assembly" is being interpreted to a unknown proprietary RISC ISA using undocumented branching, pipelining and who knows how many cache layers over multiple cores...

    e.g. cache thrashing is almost always the worst and most common performance sink especially when you got lots of small loops (general purpose code) running on-top of some generic kernel (servers and workstations; recently embedded). But when you have multiple smaller caches that you're not aware of, all your fancy unrolling can yield some unexpectedly bad results.

    --
    compiling...