Clinton Jeffery is the author of Build Your Own Programming Language; we got the chance to sit down with him and find out more about his experience of writing with Packt.
Q: What are your specialist tech areas?
Clinton: Programming languages, program monitoring and visualization.
Q: How did you become an author for Packt? Tell us about your journey. What was your motivation for writing this book?
Clinton: I have used some Packt books about libGDX when teaching game development. I like Packt’s low prices. A Packt editor contacted me on LinkedIn and we discussed possible book projects. They wanted a book that I wanted to write.
Q: What kind of research did you do, and how long did you spend researching before beginning the book?
Clinton: The book is a culmination of 25+ years of teaching compiler construction and creating the Unicon programming language. For this book, my wife and I wrote a version of lex for Unicon, and I developed a way to share lex and yacc specifications between Unicon and Java. The Uflex work began a year or two before the book writing, although it was based on a 20 year old unfinished C program written by a student. The lex and yacc sharing was done during the writing of the book, which slowed down the writing a bit.
Q: Did you face any challenges during the writing process? How did you overcome them?
Clinton: My day job made the schedule impossible. The book’s scope was far bigger than could be delivered in the number of pages allotted to it. I approximated the schedule and the scope the best that I could.
Q: What’s your take on the technologies discussed in the book? Where do you see these technologies heading in the future?
Clinton: Programming language implementations become ever more complex, but there will always be a need for a simple entry point for new creators, and there will be greater and greater needs for high level languages and tools for implementing compilers and runtime systems.
Q: Why should readers choose this book over others already on the market? How would you differentiate your book from its competition?
Clinton: I think maybe this is the only programming language implementation book to provide parallel implementations in two different languages, and to pair Java with a higher level language using standard compiler construction tools.
Q. What are the key takeaways you want readers to come away from the book with ?
Clinton: Sure, you can do any programming task in any Turing-complete language, but why would you use a language whose data structures are cumbersome and require contortions when you don’t have to?
Q. What advice would you give to readers learning tech? Do you have any top tips?
Clinton: Learn many languages and tools, and use the best tool for each job.
Q. Do you have a blog that readers can follow?
Clinton: Readers can follow what I do on either unicon.org or www.cs.nmt.edu.
Q. Do you belong to any tech community
Clinton: Besides the Unicon community, I have a loose affinity for ACM, IEEE Computer Society, and USENIX. My main tech community group is the department of Computer Science and Engineering at New Mexico Tech. It is a great place to learn tech.
Q. What are your favorite tech journals? How do you keep yourself up to date on tech?
Clinton: Historically my favorite might have been SIGPLAN Notices and Transactions on Programming Languages and Systems, but they have felt like a private club lately. I keep up to date by reviewing lots of papers for multiple conferences and journals.
Q. How did you organize, plan, and prioritize your work and write the book?
Clinton: The plan mostly follows traditional phases of a compiler. Having achieved my main research goal of making lexical analyzer and parser generators work on both Unicon and Java by Chapter 5 or 6, I thought I would be able to relax after that, but it was just turtles all the way down. I wrote linearly.