Cracking the code

By Megan Kawasaki

 When Charlie Stigler ’11 proposed his independent study topic, he intended to further his knowledge of computer science, but his project goes beyond that. Stigler studied compiler design, a topic the small tech-savvy population at school knows little about.

“It’s like a translator program, which allows computer programmers to write in simple language and have that translated into complex results in the computer,” Stigler said.

A compiler turns the code that programmers write into a “machine code,” which the computer can easily process.

“For example, a compiler turned the source code that programmers at Microsoft wrote into the actual Internet Explorer application found on any Windows computer,” Stigler said.

With this project, Stigler aims to become more knowledgeable about the philosophy behind compiler design and to apply that philosophy to create his own compiler for a fake programming language.

Stigler’s interest in computer science first arose at the end of his freshman year.

“I had to deal with system security on my personal computer and started reading about the computer security and cryptography subfields, which eventually broadened into an interest in the wider computer science field as well as programming,” Stigler said.

Since then, he has written software and has done more research on the theories behind computer science. Stigler skipped a year of the usual computer science curriculum, taking the final course offered at school in his junior year. The work of his independent study equates to what is done in a standard-level undergraduate compiler class at a university such as Stanford University or Massachusetts Institute of Technology.

“My early edge in computer science would be useless if I idled and took a year without covering any real material,” he said. “I chose compiler design because it’s a field with a lot of really interesting problem solving,” he said.

Selecting compiler design was also a “pragmatic” decision for him. He looked into a topic that was upper level, not that reliant on math and similar to what would be presented in a standard university computer science course. Between the two that fit the criteria, compiler design and computer vision, “compiler design seemed like the exciting choice” and one of the more unique aspects of computer science, he said.

“It’s considered by many to be a dying and useless art, which seems to be my thing,” he said.