The Front End and the Kernel Are Different Programs
The front end has its own language.
![[Graphics:../Images/Novak_FEProgramming_gr_33.gif]](../Images/Novak_FEProgramming_gr_33.gif)
Kernel functions that operate in the front end are in fact 'calling back' to the front end to execute a command in the front end's language.
Commands evaluated in the front end via menu items, key combinations, buttons, and sent from an external link (kernel).
Many front end operations do not have a 'function name' equivalent; they are triggered by 'Front End Tokens'.
![[Graphics:../Images/Novak_FEProgramming_gr_34.gif]](../Images/Novak_FEProgramming_gr_34.gif)
The kernel can evaluate only one thing at a time.
If a front end command triggers a full kernel evaluation, the trigger is
queued up to activate after the current evaluation completes. If the command was triggered by a kernel operation, and the kernel then goes on to remove the basis for the queued evaluation, then no more will happen.
Example
The kernel does not yet have a way to wait for a front end event.
There is no mechanism yet for the kernel to 'wait' on a front end event; code that wants to start something in the front end, then wait for a response before continuing in the kernel needs to use a busy loop checking for an innocuous front end change.
A Dialog Box
|