On rogues and rebels

A popular trope in fiction is that of the rebel. Rebels, in their various disguises as rogues, thieves, pretenders, vigilantes, and terrorists, live outside the normal bounds of society in some way, and that apparently speaks to some primal instinct in us all. We may not empathise with them, and we rarely support them, but we enjoy them. Sometimes, the rebels are the good guys (Star Wars, V for Vendetta), sometimes they’re bad (every hostage movie ever), but they’re almost always interesting.

But what makes a “good” rogue, character-wise? I can’t claim to know the answer, but I do know what makes a rebel “real”: motivation. Few people turn to the “dark side” on a whim. There’s a reason why someone in real life becomes a rebel. What that specific reason is, however, depends on many factors.

Today’s terrorist groups are founded on ideological grounds, and the same is true throughout history. Religion is the one we’re most familiar with, as it’s so easy to spur people to violence over differences in faith. Peaceful religious rebels exist, too, but we so rarely hear of them in the news. Still, they’re out there, and they were formed on the same basis as ISIS and the IRA. Many of the first English colonies in the Americas, for example, were intended as religious endeavors; the Pilgrims, to name one, intended to create a utopia ordered around their ideals, far away from the influence of the outside world.

Religion isn’t the only motivator for rebellion. Politics can work, as well. That’s what got us the American Revolution, the French Revolution, and a thousand others throughout time. (Obviously, once the rebels take power, they’re no longer rebels, but everyone has to start somewhere.) Political rebellion can happen in just about any form of government, too, and it’s not always an attempt at overthrowing the whole system. In medieval monarchies, succession laws created a breeding ground for pretenders, some of whom gathered followers and pressed their claims.

Other factors can come into play. Economic inequality got us the Occupy movement a few years ago, but it’s also a good explanation as to why some turn to crime. Society itself can also turn people into rebels—minorities of any kind are especially susceptible—but it’s more likely to “amplify” other effects. How, you might ask? Put simply, people become marginalized (for whatever reason), which leads them into rebelling. Once they begin to rebel against authority, social pressures polarize the reactions of others, causing a “with us or against us” dichotomy. From here, there are a couple of paths, but the outcome is the same either way: the “rebels” tend to become more extreme, more hardened against negative opinion.

Individual rebels

The lone rebel is popular in all forms of fiction. He can appear on either side of a fight, as good or evil or (increasingly) as an anti-hero. For the individual rebel, think of Batman, a vigilante who works in the shadows, following his own moral compass. But also think of the Joker, because he’s no less distant from society.

Individual rebels in fiction tend to be outcasts, if for no other reason than the simple fact that it’s the easiest way to motivate a rebellious character. The orphan turned to a life of crime (or of fighting it), the woman in a man’s world, the racial minority—not just black in a sea of white, but also an elf among humans or the single Earthling in a universe full of aliens—whatever the cause, this character is alone. He has few or no connections to the society around him, so he has no reason to follow its norms, no reason to try to conform.

Loners like this are good protagonists in many stories, and some of my favorite lead characters are of this sort. I’d say that’s true for a lot of people, if the popularity of lone-star action heroes is any indication.

Organizations

It’s usually social factors that create individual rebellion. By contrast, organized rebellion tends to be caused by “the system”. The Rebel Alliance is fighting the Empire. Freedom fighters want to create their own nation where they can live in peace. The faithful are sent by God to wrest control from the heretics running the kingdom. (The savvy reader will note that each of these examples makes the rebels look like the good guys. That’s by design. But you could just as easily invert expectations. After all, the scenarios equally describe the Confederate States of America, the Chechens, and al-Qaeda, respectively.)

Organizations range from the small (a band of anarchists, for example), to the large (national rebellions). At each stage, they can fight for good or bad. The common trait that all of them share, though, is that they all have a “mission”. Why do they fight society? Answer that, and you can better characterize the group. (And that goes just as well for real life, a fact that many people forget.)

Smaller groups tend to be localized. The Thieves’ Guild, a common trope in fantasy, is one example, but any kind of organized crime fits. Assassination plots work, too, as do “heists”. On the side of the good guys, there aren’t a lot of familiar options, unfortunately. Small paramilitary organizations might work, but a band of adventurers (or, in science fiction, the crew of a ship) doesn’t quite fit, unless there’s a very specific reason why they’ve been shunned by society. Of course, it’s possible to make criminal groups sympathetic; look at Robin Hood.

A larger organization, one spanning more than a single locality, is more likely to exist in modern or futuristic settings, as communication over greater distances becomes more practical. Today, we tend to equate “organized rebel group” with “terrorists”, but that’s largely a function of media manipulation. It might be less likely, but it’s no less possible to have a large group of rebels fighting for good. (Again, the Rebels of Star Wars serve as illustration.)

While the lone rebel as a protagonist is a staple of fiction, rebellious groups tend to be the bad guys or, at best, a backdrop. This makes intuitive sense, as it’s awfully difficult to characterize a group from the inside without focusing your attention on a handful of its members. Sure, the good guys might belong to a rebellion, and they might even believe in its cause, but it’s harder to work that into a story, in my opinion.

Let’s make a language – Part 5b: Verbs (Isian)

Verbs, as we have learned, are words of action, and we’ll start taking action on them by looking at Isian. As usual, Isian is the simpler of our two conlangs. Its verbs are fairly straightforward, and they shouldn’t be that hard to understand, even for speakers of English and other morphologically lacking languages.

The stem

Like nouns, Isian verbs start with a stem. This can be any verbal morpheme or (as we’ll see later on) a combination of them. For now, we’ll stick with the simplest form: a single morpheme stem representing a “basic” verb.

Most Isian verbal stems end in vowels, though we’ll see that there are a few very important exceptions. Some examples you’ve already met include coto “walk” and hama “eat”, and we’ll use these as our main running examples.

Tense, aspect, and mood

The three main verbal categories of tense, aspect, and mood are often lumped together, mostly because many languages make a mess of them. Isian is little different in this regard. There are four main verbal forms: present tense, past tense, perfect, and subjunctive.

Past and present should be obvious, even if you’re not a linguist. Perfect is a bit like the English pluperfect (“has walked”, “has eaten”); to a first approximation, they’re essentially identical, but we’ll see differences pop up later on. The subjunctive is a bit harder to explain. Fortunately, we won’t be using it much this time around. For now, just know that it can’t be used for the main verb of a sentence.

Now, this doesn’t mean that Isian has no way of talking about events in the future, for instance. But the language doesn’t mark these finer shades of meaning directly on the verb. Instead, it uses auxiliary verbs, much like English. As an example, nos acts as a future tense marker when placed before a verb: nos coto “he will walk”. We’ll see a whole list of the main auxiliaries in a moment, but we need a quick digression first.

Agreement

One wrinkle of Isian verbs is agreement, also called concord. Each Isian verb takes a specific inflectional ending to mark the person and number of its subject. For example, coto can mean “he walks”, but to say “I walk”, we must use coton. There are four different sets of agreement markers, one for each of the three main persons (first, second, and third), while the fourth specifically marks the first-person plural, equivalent to English “we”. (We’ll say that Isian had plurals in the other two persons, but they’re gone now.)

Thus, we have a total of 16 different verbal forms. That’s way more than the maximum five of English (“eat”, “eats”, “ate”, “eaten”, “eating”), but it’s a far cry from the dozens found in Romance languages. It’s a lot, but it’s manageable. And it all fits into a neat table, too:

chere 1st Sg. 1st Pl. 2nd Pers. 3rd Pers.
Present cheren cherema cherel chere
Past chereta cherenda cherelsa cheres
Perfect cherecan cherencan cherecal cherec
Subjunctive cheredi cheredim cherelde chered

Here, I used chere “see”, but the endings are the same for all regular verbs. The first column is all the first-person singular, so its English translations would be “I see”, “I saw”, “I have seen”, and something like “that I see”. (Subjunctives are hard.) The same follows for the other columns: first-person plural is “we”, second is “you”, and third can be “he”, “she”, “it”, or “they”.

Auxiliary verbs

Most of the other tenses and aspects and moods are constructed in Isian by using auxiliaries, much like English “is”, “has”, “will”, etc. We’ve already seen the future tense nos, but there are a few more that we can introduce.

  • an: A negative marker similar to English “no”: an coto “he does not walk”.

  • cal: A mood marker like “should”: cal coto “he should walk”. (Unlike English, Isian can directly use this with the past tense: cal cotos “he should have walked”.)

  • mor: Mood marker that indicates the ability to act: mor coto “he can walk”. (In the past tense, it’s more like “could”.)

  • sum: Indicates a possibility, like “might”: sum coto “he might walk”.

  • ish: Like sum, except that implies “probably not”: ish coto “he might walk (but he likely won’t)”.

Two particular auxiliaries deserve more than a bullet point. First is ade, which actually functions as its own verb, inflecting for person just like any other, but its tenses have different meanings. In the present tense, it marks an “ongoing” aspect, like the English participle: ade coto “he is walking”. (The main verb, of course, can be in any tense: ade cotos “he was walking”, and so on.)

Put ade in the past tense, and it marks the completion of an action: ades coto “he stops walking”. Again, the main verb can change tenses independently.

Using ade in the perfect creates a “past perfect”: adec coto “he had walked”. Here, it doesn’t really matter whether the main verb is in the present, past, or perfect. The meaning is the same.

The other peculiar auxiliary verb in Isian is par, which marks the passive voice. Passives are complex in many languages, but they’re not that hard to figure out here. We can’t use coto here, because it’s intransitive, and you can’t really make intransitive verbs passive, so we’ll use our other example, hama. An active sentence might be hamata e tema “I ate the food”.

To put this in the passive voice, we do three things. First, the old object becomes the subject; the old subject can be ignored or put in as a prepositional phrase, but we haven’t discussed those yet. Second, we add par before the verb. Finally, we change the verb’s conjugation to match its new subject (the former object). Put all this together, and we get the new sentence tema par hamas “the food was eaten”.

Irregular Verbs

Isian does have a few genuinely irregular verbs. One of these, possibly the most important verb in a language, is the “copula” verb, like English’s “to be”. In Isian, it has the infinitive (or dictionary) form tet, but its conjugation looks like this:

tet 1st Sg. 1st Pl. 2nd Pers. 3rd Pers.
Present en tem il e
Past et eda tel tes
Perfect tec tec kel ec
Subjunctive meyn menim med med

Two other, similar verbs that have irregular forms are sedel “to become” and fer “to seem, look”. For these, we have:

sedel 1st Sg. 1st Pl. 2nd Pers. 3rd Pers.
Present seden sema sedil sede
Past sed seda sedel sedes
Perfect selec selec sedel sec
Subjunctive sidi sidim sid sid
fer 1st Sg. 1st Pl. 2nd Pers. 3rd Pers.
Present fen feter fel fe
Past fet feta fil fes
Perfect fen feter fel fe
Subjunctive safen safim safed safer

If you were actually learning Isian as a real language, you’d probably have to memorize these. Our imaginary Isian schoolchildren would, too.

Vocabulary

Here are a few more verbs that you can play around with. All of these are perfectly regular, following the pattern laid out for chere.

  • to have: fana
  • to come: cosa
  • to go: wasa
  • to drink: jesa
  • to laugh: eya
  • to hold: otasi
  • to hear: mawa
  • to wash: hishi
  • to cook: piri
  • to speak: go
  • to call: tede
  • to read: lenira
  • to write: roco
  • to want: doche

Assembly: back in time

Assembly language, in some form, dates all the way back to the first programmable computers. It started out as machine code, a series of numbers written out and somehow entered into the computer. Soon enough, though, it became a programming language in its own right. Modern assemblers have most of the same features as compilers, and many of them allow you to use macros, constant definitions, and lots of other helpful additions, but the idea is still the same: you’re working with the computer itself, by yourself.

Sacrifices

Using assembly is, in a very real sense, like going back in time. All those things we take for granted in higher languages—functions, classes, even if and while—are lost. If we want them, we have to make them ourselves. Sure, there are standards, and we can use libraries (even those written in other languages), but assembly is…primitive. It doesn’t hold your hand. It doesn’t lead you anywhere. And it’s very much working without a net.

Think of a cabin in the woods. You might go there to relax, to find yourself, to commune with nature, or to plot a string of murders. Assembly, similarly, will make you want to do all these things. (Well, maybe not the murder part. Then again, it can be awfully frustrating.) It’s a return to your roots that appeals to the self-reliant instinct of us all, a programming Walden.

Tools of the trade

Rather than dwelling on what we don’t have when working with assembly, let’s focus on what we do have. There’s not all that much, but remember this: everything we use today is built out of these simple tools.

First, types. Most high-level languages have them. Those that don’t are lying. You typically have various kinds of numbers (integer, floating-point, maybe some higher-precision deal), single characters and strings, and then whatever else the language needs. In assembly, there’s one basic type, the machine word. It’s an integer, the size of which gives us the “bits” of the processor; 64-bit processors have 64-bit words sizes, for example. (Most modern processors have additional support for floating-point numbers, but these are usually kept separate, and lower-end embedded hardware often doesn’t bother.) It’s spartan in the extreme, true, but it’s really all we need, because that same N-bit integer can be used as a number, a character, an index, or a pointer.

Next, assembly language in itself doesn’t have variables (though many assemblers offer a simulation of them), but it does have the register. These are small areas of memory in the innermost core of the processor. They’re ultrafast but truly limited, both in size (almost always a single word) and number. It was a big deal when AMD created their 64-bit extensions to the x86 architecture and added a whopping eight new registers, because that doubled what Intel had offered since the 1980s. The 6502, mainstay of the 80s home computing revolution, managed with only six, and only one of those (the A register) was truly general-purpose. (The others were two index registers—X and Y—a stack pointer, program counter, and status or “flag” register.)

Instead of dedicated control constructs like the for-loop, while-loop, or switch, assembly works on a lower level, using basic instructions. These differ for different architectures, but there are a few that are near-universal. These include arithmetic (adding and subtracting are nearly everywhere, but multiplying and dividing aren’t), bit-twiddling (shifts, AND, OR, and XOR, but also the bitwise rotate, which high-level languages ignore), loading and storing, branching or jumping (conditionally or not), some sort of “indexing” operation, and direct hardware access.

From these little blocks, great things can be accomplished, but it takes time. The tradeoff of development time for execution time is a hard one to make, and it’s almost always uneconomical, which is why assembly is so rare today. But it’s possible and sometimes necessary.

The great divide

Like any movement, assembly language has splintered into two main camps. These are divided on the way an architecture is constructed. Particularly, the sticking point is how many instructions, and of what kinds, are provided. Some like their assembly to be full of features, with instructions for everything (the CISC style). Others prefer a simpler set of building blocks (RISC). The RISC camp has all but won the battle, as most new systems are of that style, and even the CISC holdouts like x86 actually have a RISC core underlying the assembly language that we can access. Still, it’s a good historical footnote, and both sides do have their merits.

To be continued

Next time, we’ll look at an actual assembly language instruction set and architecture. (As of this writing, I haven’t decided which. I’ve narrowed it down to a few possibilities: 6502, early x86, AVR, or MIPS.) I’ll hopefully have links to online assemblers and emulators, so that readers won’t have to download anything. Then we’ll get to see what the old days were really like.