Friday, May 16, 2014

Software Tools

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


1 comment:

  1. I enjoyed this blog as you shared three different IDEs that are useful to you and why you like them. Personally, I also believe that IDEs are the biggest tool for most software engineers because they isn’t much you can do without them. This blog is completely written as it includes technical information and your opinion about them. Great Job!

    ReplyDelete