Software tools are a ubiquitous part of
modern life especially for a software engineer. As a software
engineer one handles multiple compilers, integrated design
environments (IDE) or something as mundane as Microsoft Excel or
PowerPoint. This semester, I added a couple more tools to my toolkit
– Prolog, JFLAP and the Petite Chez Scheme.
SWI – Prolog:
Prolog is a logic based programming
language and was initially designed for the purpose supporting of
Artificial Intelligence programming. I would particularly recommend
Swi- Prolog among the various flavors of Prolog available. It is an
open source tool that is used for the Prolog programming language. It
was particularly useful for practicing my Prolog programming skills.
It has a lot of key libraries, good GUI, IDE environment and really
good supporting documentation. This made self-learning a lot easier.
JFLAP:
I am sure for
every computer science major student, formal languages and
computation is one course that can get really difficult to
understand. I felt this was mainly because the course can get very
theoretical. But while doing this course, I came across JFLAP that
really helped me in my understanding of finite machines taught in the
formal languages and computation course.
One can play
around with this tool to create different finite machines, check the
language it produces etc. This tool can be used to experiment on Non
Deterministic and Deterministic machines, Turing machines etc. It can
also be used to convert a NFA (Non Deterministic Finite Automata) to
DFA (Deterministic Finite Automata). It can also be used to obtain
regular expressions from a DFA. I found using this tool a lot of fun
and very educational.
Petite Chez Scheme:
This is another tool that I used a lot
this semester. This is an interpreter for the scheme programming
language. Again, it has extensive libraries and a surprisingly good
GUI. Even though scheme is a very old programming language, it
provides a very good insight into how programming languages have
evolved over the years. I really enjoyed using Scheme and would
encourage software engineers to do so.
References