Patenting software? Usually impossible, but there are exceptions  IO+