XRDS

Crossroads The ACM Magazine for Students

Sign In

Association for Computing Machinery

Articles Tagged: Compilers

Articles & Features

Toward a universal quantum programming language

SECTION: Features

Toward a universal quantum programming language

Quantum computing may be more powerful than classical computing, but it has a radically different programming model. While current languages are in their infancy and future languages are likely to be different, now is a great time for language designers and implementers to try new ideas.

By Jens Palsberg, September 2019

PDF | HTML | In the Digital Library

Dependence and parallelization

DEPARTMENT: Blogs

Dependence and parallelization

By Fahad Khalid, July 2015

PDF | HTML | In the Digital Library

A hybrid system for code switch point detection in informal Arabic text

SECTION: Features

A hybrid system for code switch point detection in informal Arabic text

How to detect the switch between a standard and a dialectal form of a language in written text and why this is important for natural language processing tasks.

By Heba Elfardy, Mohamed Al-Badrashiny, Mona Diab, October 2014

PDF | HTML | In the Digital Library

The well-programmed clavier

The well-programmed clavier

A look into the workings of the Emmy and Emily Howell programs, including musical examples with pointers to where they can be heard as well as seen.

By David Cope, June 2013

PDF | HTML | In the Digital Library

Introduction

By Justin Solomon, September 2008

PDF | HTML | In the Digital Library

The use of compiler optimizations for embedded systems software

Optimizing embedded applications using a compiler can generally be broken down into two major categories: hand-optimizing code to take advantage of a particular processor's compiler and applying built-in optimization options to proven and well-polished code. The former is well documented for different processors, but little has been done to find generalized methods for optimal sets of compiler options based on common goal criteria such as application code size, execution speed, power consumption, and build time. This article discusses the fundamental differences between these two general categories of optimizations using the compiler. Examples of common, built-in compiler options are presented using a simulated ARM processor and C compiler, along with a simple methodology that can be applied to any embedded compiler for finding an optimal set of compiler options.

By Joe Bungo, September 2008

PDF | HTML | In the Digital Library

Optimizing application performance

By M. Tyler Maxwell, Kirk W. Cameron, August 2002

PDF | HTML | In the Digital Library

Tools tutorials, part deux

By Bill Stevenson, July 2001

PDF | HTML | In the Digital Library

Why bison is becoming extinct

At some point in your career, you're going to implement a computer language. You probably won't be implementing Java or C++. You may not even recognize it as a language. Truth be told, there are an awful lot of domain-specific languages, or "little languages" [7] in common use:

  • configuration files,
  • HTML/XML documents,
  • shell scripts,
  • network protocols,
  • mail headers,
  • command-line arguments.
The list goes on. A number of programs allow you to write scripts to control their operation; infact, just the other day I downloaded a neural network simulator which provided a little programming language to steer the simulation.How will you implement your language? There's the ad hoc approach, of course, but it's not well suited to languages whose design is complex or frequently changing. You also end up writing code to perform tasks which can be effectively automated.You might also consider using existing languages like Tcl [18] and Python [6]. These languages are designed to either be embedded in an existing application, or easily extended. This is a good solution when it can be used, saving a lot of time and effort. However, there may be concerns about tying your language to one which is itself changing, or the syntax and semantics of your language may not match those of such a "host" language.A third approach is to use compiler tools to implement your language. Most were designed for the implementation of large programming languages, but the same principles and techniques apply equally well to little languages. This article is the story of one such tool -- a parser generator tool -- and more importantly, what sort of tool is going to replace it, and why.

By John Aycock, July 2001

PDF | HTML | In the Digital Library

Architectures and compilers to support reconfigurable computing

By João M. P. Cardoso, Mário P. Vestístias, March 1999

PDF | HTML | In the Digital Library

Protecting Java code via code obfuscation

The Java language is compiled into a platform independent bytecode format. Much of the information contained in the original source code remains in the bytecode, thus decompilation is easy. We will examine how code obfuscation can help protect Java bytecodes.

By Douglas Low, April 1998

PDF | HTML | In the Digital Library

The Fox Project

By Jeremy Buhler, September 1995

PDF | HTML | In the Digital Library