A tell block , like an if block, comes in two forms: a genuine block and a single-line version. The block form is like this:
tell target -- code targeting this target end tell
The single-line version is like this:
tell target to command
A tell block performs two distinct functions:
The fact that a tell block does both these things makes a certain sense. After all, if you're going to be sending messages to the Finder, you're probably going to want to use the Finder's terminology. Nevertheless, the two functions are distinct, and it is possible to do either one without the other:
If the target in a tell block is an application, that application can be expressed as a variable rather than a literal application specifier. This variable may have as its value an application specifier, or it might be a reference to an object belonging to an application. Or, the target could be an application specifier, but the name of the application is a string variable instead of a literal string. In these situations, you'll probably have to use a terms block in order to get the code inside the tell block to compile.
On the need for a target application to be present at compile time, decompile time, and runtime, see "Missing External Referents" in Chapter 3. On determination of the target, see Chapter 11. On resolution of terminology, see Chapter 20.