а) синтаксическая ошибка - нарушение формального описания языка программирования, т. е. например не поставили в конце строки; или оператор if написали через две f, чаше всего являются опечатками в тексе программы Семантическая ошибка - ошибка связанная с выполнением алгоритма, иногда семантические ошибки называют логическими, как пример можно привести попытку обращения к неописанной переменной или ошибке в формулах. типов семантических ошибок очень много и вычислительные, типа деления.
б) Ошибки не являющиеся синтаксическими и семантическими могут так-же встречаться, например пользователь пробует записать данные на защищенный диск и получает ошибку, но виновата в этом не программа а пользователь, введший не корректные данные