It's written in PHP, with OOP principles. The solver adds the cells to the grid one at a time (eg "3", and each time it does this, it marks the other cells in the row, column, and block as "not possible" (eg "not 3". When a cell has eight of the nine values marked as "not possible" then that cell is solved.