Currently viewing a development environment

I had to learn assembly language to truly understand my grandfather

He didn't process the world like the rest of us

Elle O'Brien

Computational Neuroscience

When my grandfather died six months ago, my sister said it felt as if we had lost a family archive. We knew he was an electrical engineer who began his career at the dawn of digital computing. We knew he had spent some months in the American southwest in the 1970s, working in an undisclosed capacity on collision-avoidance systems. And we knew he went to bed very late, preferring to read and think while his children —and later, grandchildren — slept. But the specifics of those decades, those months in the desert, and those nights in his quiet suburban home were vast unknowns.

I visited my grandfather a week before he died of late-stage lung cancer prepared with questions about his life's work. Over the years, I'd collected few details about his mysterious job. Now I felt the urgency of limited time. Since I had begun working as a research engineer and software developer, I thought I could at last understand what had filled the countless hours of his career.

The author with her grandfather

Courtesy of Elle O'Brien

There were barriers to conversation: even in full health, my grandfather was deeply private. Now he was uncomfortable, nauseated, and sleepy. A few sentences and he was out of breath. 

Further, I was exhausted. I had traveled to his retirement community in Florida from a conference in Baltimore, where I gave two talks about mathematical models pertaining to hearing. This was after I missed my flight to Baltimore because I stayed up the night before reading a textbook on programming computer processors. And in the preceding weeks, I had worked every day and evening on an approach to predicting errors in speech perception to present at the meeting. My grandfather and I took turns falling asleep in his sunroom.

A "hello world" program in Linux assembly language

asm.sourceforge.net

I had brought that programming textbook to show him. Introduction to Machine and Assembly Language Programming, published in 1986, was the most recent book of its sort in the university library.

Machine language is immediately readable to computers but opaque to all but the most proficient humans. Assembly language is a ginger step above it. A language like Python or C or Java — languages that dominate the computer science industry — will run on any modern computer; assembly language is inseparable from the machine it commands. Every machine architecture has its own set of codes. It is tedious to write. 

But for some projects, like the experimental neuroprosthetic device my supervisor was spearheading, it is the only way. Thus my late nights poring over a textbook from the '80s.

The neuroprosthetic device I used to work on.

UW Health Sciences

For much of my grandfather’s career, assembly and machine language was the only way to program a computer. My father remembers, as a child, finding boxes of index cards with curious hole punches in his father’s study and taking them out, shuffling them like a deck of playing cards, drawing on them. Those were the programs my grandfather wrote for the UNIVAC machines at his office. 

His computers would have been behemoths, and he would have known everything about them. He would have known every part of the processor, all the memory addresses, all the binary strings that translate to commands that load and read and store other binary strings.

In a moment of mutual lucidity, I handed my grandfather the textbook.

“This is my book," he said with surprising affection, explaining that he used to teach a course for a local college that followed its curriculum exactly. As he leafed through, he commented on assemblers and registers like a foreigner recalling his mother tongue. I rattled off questions, then, about his machines and his code. He recalled the technical specifications of his computers in exacting detail. We spoke about writing mathematical simulations, which he used to model traffic patterns and I used to model neurons. The equations were different, but the methods were the same, even across generations.

Now that we could speak the same language, I understood why I'd always seen him as a bit of a relic. It was never later than 1994 in his study, where an AM radio eternally crackled. When the internet flowered he paid it no notice; I never saw him write an email. His computer’s sole purpose was solitaire.

But I realized, in our last conversation, that he had not withdrawn. He was simply never out there; he lived deep in his own head. What got him to work on time was not lust for technology or a vision for the future, but the process, the subtle beauty of a machine, the game of a good problem, and the gratification of writing code that finally works. Even in a collapsing body, he could relive that thrill.

That same thrill is what pushed me to extremes in the time leading up to my conference. I was experiencing a leanness of the soul, months where I stopped listening to music and reading (save my assembly book). I pared down and intensified my work. It wasn’t depression — on the contrary, I was full of hope, that just after the next simulation, just after the next line of code, was a glimpse of a truth worth seeing.

But I was lonely. The process was rewriting my thoughts, changing my own language, and the deeper I went, the fewer friends followed me. Anyone with a passion must know this feeling. I longed for family, for someone to cook me dinner instead of another frozen meal, but I couldn’t stand to pause long enough to seek it. I couldn't express the problems that occupied me in plain terms, so I stopped trying. Perhaps it was like that for my grandfather. All this time, I'd mistaken his silence for disinterest, but in our last conversations, I saw that he could never have spoken about his day around the dinner table. He needed an invitation in his own language.

When my grandfather died, untold memories of a mind at work were lost. I can't know the exact details of the problems that occupied him in the earliest hours of the morning or the clever ways he might have nudged the path of scientific computing along. But I feel the comfort of precedence — a reassurance of my own health and normalcy, even. It is the closest thing to telepathy, knowing that we have held the same unspoken words in our minds some 60 years apart.