Wizard’s Bane by Rick Cook

“Well, yeah, but couldn’t you build on that? I mean start from the easy spells and work up to the harder ones that do something useful?”

Shiara shook her head. “Once again, magic does not work that way. Mark you, Sparrow, each spell is different. Learning one spell teaches you little about others. Wizardry is a life’s work, not something one can practice as a side craft. You must start very young and train your memory and your body before you begin to learn the great magics.”

“I see the problem,” Wiz said.

“That is only the beginning. Even if ordinary folk could learn the great spells, we would be cautious about teaching them lest they be misused. A wizard has power, Sparrow. More power than any other mortal. By its very nature that power cannot be easily checked or controlled by others. Few have the kind of restraint required to do more good than harm.”

“But more people are dying because only wizards can use the really powerful spells,” Wiz protested, thinking of Lothar and his cottage in the Wild Wood.

“More would die if those who are not wizards tried to use them. Life is not fair, Sparrow. As you know.”

Wiz didn’t pursue the matter and their talk went on to other things. But it troubled him for the rest of the evening.

Shiara’s right, he thought as he drifted off to sleep that night. You can’t have just anyone working magic here. It would be like giving every user on the system supervisor privileges and making them all write their own programs in machine language. Not even assembler, just good old ones and zeroes. He sleepily turned the notion over in his mind, imagining the chaos that would cause in a computer center. You can’t trust users with that kind of power. God, you don’t even want most programmers writing in assembler. You make them use high-level languages.

A vagrant thought tugged at the edge of Wiz’s sleep-fogged brain. A computer language for magic?

My God! I’ll bet you could really do that!

He sat bolt upright. Well why not? A computer language is simply a formalism for expressing algorithms and what’s a magic spell but an algorithm?

If it did really work that way the possibilities were mind-boggling. You’d need the right language, of course, but God what you could do with it.

These people were the original unstructured programmers. They were so unstructured they didn’t even know they were programming. They just blundered around until they found something that worked. It was like learning to program by pounding randomly on the keyboard.

They never seemed to generalize from one spell to another. They needed some kind of language, something to let them structure their magic.

It would have to be something simple, Wiz decided. A language and an operating system all in one. Probably a very simple internal compiler and a threaded interpreted structure. And modular, yes, very modular.

Forth with object-oriented features? Yep, that made sense. All thought of sleep vanished as Wiz got of bed. His mind was full of structural considerations.

He dug a chunk of charcoal out of the fireplace and started sketching on the hearth by the wan moonlight. Just a basic box diagram, but as he sketched, he became more and more excited.

A Forth-like language was about the simplest kind to write. Essentially it was nothing but a loop which would read a command, execute it and go on to read the next command. The thing that made such languages so powerful was that the command could be built up out of previously defined commands. MOBY could be defined as command FOO followed by command BAR. When you gave the loop, the interpreter, the command MOBY, it looked up the definition in its dictionary, found the command FOO, executed it, went on to the command BAR and executed it, thus executing the command MOBY.

At the top of a program was nothing but a single word, but that word was defined by other words, which were defined by other words, all the way back to the most basic definitions in terms of machine language—or whatever passed for machine language when the machine was the real world.

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127

Leave a Reply 0

Your email address will not be published. Required fields are marked *