I half agree. The filesystem is just a device. No running in the background is kinda icky, but that doesn't seem like a computer science kinda thing. (not that multitasking isn't hard, it's just not the first thing that jumps to mind when thinking of simulating things on a turing machine)
Language to language translation, that's core. that's fundamental to CS.
The most popular virtual machine ever is the regular expression interpreter. It's such a, fundamental thing. Nothing to do with a particular set of hardware or instructions, just the concept of interpreting match, split, jmp, and char.
I'm having a real hard time understanding how to write C without unions of tagged structs... Maybe that's allowed? I just don't get where one language ends and another begins. how much can i abuse the macro preprocessor? have you ever seen the bash source with BEGIN END blocks? it's sick.
Of course #define is nothing compared to c++ templates. If i just write scheme as partially applied templates, am i cheating?
it's pretty nucking futz.