MACHINE PROGRAMMING TOOLS : A COMPREHENSIVE GUIDE