Each Smarty tag either prints a variable or invokes some sort of function. Functions are processed and displayed by enclosing the function and its attributes into delimiters like so: {funcname attr1="val" attr2="val"}.
Both built-in functions and custom functions have the same syntax in the templates. Built-in functions are the inner workings of Smarty, such as {if}, {section} and {strip}. They cannot be modified. Custom functions are additional functions implemented via plugins. They can be modified to your liking, or you can add new ones. {html_options} and {html_select_date} are examples of custom functions.