Aug-31-2018, 01:05 AM
when i first saw a computer program, i tried to imagine what hardware was doing to make that run. back then i had only seen computer hardware on TV and it showed tapes spinning back and forth. so i imagined the hardware was wired to run programs in a language like fortran and was looking up variables by name on the tapes (i was not yet aware of core memory). and there was a 2nd tape with the program. it wasn't long until i figured out reality (with the help of a hexadecimal memory dump printed on paper). it was then less than a year until i was coding assembler language on a large mainframe my mother's professor got me access to (with the help of an assembler language book i acquired in Chapel Hill NC while on summer vacation with the family).
that original concept has stuck in my head. instead of a giant numerically indexed memory i have often envisioned machines where memory storing and memory fetching is done by names. this is what Python (and some others) are doing now. what i want to do is build an emulator of such a machine, like what Python is doing, but structured more like a machine as it might have been built in hardware, with all things such hardware might also need. but i want to basically use exactly the Python system as the starting point. then for that kind of (virtually implemented) machine, its OS would be implemented in Python code.
this, or Python's own assembly code, could be a way to more gently introduce machine language to students, without the difficulty of dealing with a big flat numerically indexed memory at the same time as teaching discrete programming steps. then hit them with "memory as a list" later on.
that original concept has stuck in my head. instead of a giant numerically indexed memory i have often envisioned machines where memory storing and memory fetching is done by names. this is what Python (and some others) are doing now. what i want to do is build an emulator of such a machine, like what Python is doing, but structured more like a machine as it might have been built in hardware, with all things such hardware might also need. but i want to basically use exactly the Python system as the starting point. then for that kind of (virtually implemented) machine, its OS would be implemented in Python code.
this, or Python's own assembly code, could be a way to more gently introduce machine language to students, without the difficulty of dealing with a big flat numerically indexed memory at the same time as teaching discrete programming steps. then hit them with "memory as a list" later on.