В формальной теории языка и сопоставлении с образцом чередование — это объединение двух наборов строк или, что эквивалентно, логическая дизъюнкция двух шаблонов, описывающих наборы строк.
Регулярные языки закрыты относительно чередования, что означает, что чередование двух регулярных языков снова является регулярным. [1] В реализациях регулярных выражений чередование часто выражается вертикальной чертой, соединяющей выражения для двух языков, объединение которых должно быть сопоставлено, [2] [3] в то время как в более теоретических исследованиях для этой цели может использоваться знак плюс . [1] Возможность построения конечных автоматов для объединений двух регулярных языков, которые сами определяются конечными автоматами, является центральной для эквивалентности между регулярными языками, определяемыми автоматами и регулярными выражениями. [4]
Другие классы языков, которые закрыты относительно чередования, включают контекстно-свободные языки и рекурсивные языки . Вертикальная черта для обозначения чередования используется в языке SNOBOL и некоторых других языках. В формальной теории языка чередование является коммутативным и ассоциативным . Это в общем случае не относится к форме чередования, используемой в языках сопоставления с образцом, из-за побочных эффектов выполнения сопоставления в этих языках.