Skip to main content
Version: Sprint 4

setvariant

Required. Sets the variant (type) of the Turing machine.

Syntax​

setvariant(variant-name);

Parameters​

  • variant-name: One of the supported variant names (see Variants)

Valid Variants​

  • single-tape - Standard deterministic single-tape Turing machine
  • multi-tape - Turing machine with multiple tapes
  • multi-step - Turing machine with multiple steps per transition
  • multi-tape-multi-step - Combines multi-tape and multi-step features
  • computational - Computational variant that uses halt states instead of accept/reject
  • nondeterministic - Allows nondeterministic transitions

Examples​

setvariant(single-tape);
setvariant(multi-tape);
settapecount(2); ### Required for multi-tape
setvariant(computational);

Rules​

  • Must appear before any declarations or transitions
  • Can only be declared once
  • Determines which marker functions are valid (makeaccept/makereject vs makehalt)
  • Multi-tape variants require settapecount

Errors​

  • Missing setvariant: 'setvariant' is required
  • Unknown variant: unknown variant 'xyz'. Did you mean 'single-tape'?
  • Duplicate: duplicate 'setvariant'
  • Wrong position: 'setvariant' must appear before any declarations or transitions

See Also​

  • Variants - Detailed explanation of each variant
  • settapecount - Configure tape count for multi-tape variants