- May 8, 2019, 4:30 pm US/Central
- Jim Pivarski, Princeton
- Don Lincoln
Programming languages aren’t for computers; they’re for people. If a language doesn’t make it easier to express your physics problem, it’s not a suitable language. Some fields have specialized “Domain Specific Languages” (DSLs) that trade freedom of expression for focus on the problem at hand, and can even improve performance by limiting this scope. A prime example is SQL, widely used by data analysts outside of physics, which trades generic computation for a SELECT-WHERE-GROUPBY pattern. Interestingly, this was the design pattern of the first electromechanical computers (Hollerith machine, 1890) and it’s still a major focus of big data today (Dean & Ghemawat: MapReduce, 2004). Particle physics problems don’t fit SQL well; in fact, physicists became involved in computing in tandem with the invention of generic, digital computers (Von Neumann’s stored-program machine, 1945). I will present some history, some general features of programming languages, what “declarative” really means, and will show some perhaps surprising examples of DSLs you’re already using.