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: 2) by Snotnose on Wednesday January 11 2017, @04:14AM

    by Snotnose (1623) on Wednesday January 11 2017, @04:14AM (#452356)

    Downgraded to 8080 for work, then got 8086 and went bit slice (google amd 2900). I have a pretty good idea of how a computer thinks.

    --
    Why shouldn't we judge a book by it's cover? It's got the author, title, and a summary of what the book's about.
    Starting Score:    1  point
    Karma-Bonus Modifier   +1  

    Total Score:   2  
  • (Score: 0) by Anonymous Coward on Wednesday January 11 2017, @05:06AM

    by Anonymous Coward on Wednesday January 11 2017, @05:06AM (#452371)

    Little endian 8-bit, such horror. Peeking-and-poking was the only way to play music at the time, since Applesoft Basic did not support sound.

  • (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.
    • (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...
  • (Score: 2) by turgid on Wednesday January 11 2017, @09:22AM

    by turgid (4318) Subscriber Badge on Wednesday January 11 2017, @09:22AM (#452435) Journal

    God uses a Z80 when he can't get a 6809.

  • (Score: 2) by HiThere on Wednesday January 11 2017, @06:34PM

    by HiThere (866) Subscriber Badge on Wednesday January 11 2017, @06:34PM (#452615) Journal

    Cool. I started with IBM 7090 assembler. But folk getting started now have more complexity even at the assembler level. There a good place for things like MIX and Q8. It may not apply to those who've already learned, but it's a valuable place to start.

    P.S.: I used to be really hot for assembler...but then I changed basic architectures 4 times over a couple of decades losing a bunch of work each time, and I became a convert to higher order languages ... originally Fortran IV, later C, later anything I could get a compiler or interpreter for (except Basic), more recently I look for the language that suits my problem...but I also consider "Can I depend on this language to be around in a decade?", since I've been bitten by that a couple of times.

    That said, and speaking as an old fogy, you shouldn't be dismissive of tools to let people easily learn the basics. (I may really dislike Basic, but that's not because it's "a tool to let people easily learn the basics", it's because it pretends to be such and is such a horrible failure.)

    --
    Javascript is what you use to allow unknown third parties to run software you have no idea about on your computer.