Grammar terms and derivation
A terminal is a literal token such as “robot”; a nonterminal names a category such as <np>; a production gives permitted replacements. BNF's ::= means “is defined as,” and | separates alternatives. For the worked sentence, <sentence> expands to <np> <vp>, then the subject becomes “the robot”; the verb phrase becomes “sees” plus the object noun phrase, yielding “the robot sees a star.” Each displayed step replaces the leftmost remaining nonterminal. A complete string of terminals is licensed by the grammar; it is not thereby guaranteed to be meaningful in context.
There are 4 noun phrases (2 determiners × 2 nouns) and 4 verb phrases (the single verb plus one noun phrase), so this tiny grammar licenses 16 sentence strings. It does not encode agreement, semantics, or open-ended vocabulary.
Derivation complexity
The interactive demo is a fixed, precomputed sequence of D=10 sentential forms: clicking Next advances an index in O(1) algorithm time; rendering the current string of length ℓ takes O(ℓ) time. Across a full trace the render cost is O(Σℓᵢ), bounded by O(D·L) when each form has at most L symbols. The precomputed forms take O(D·L) stored space and the current visible text takes O(L); the grammar is fixed-size. This is the cost of this scripted visualization, not a general parser or grammar-expansion engine. A generic implementation that searches and copies a sentential form at each replacement would depend on its chosen representation and could spend O(D·L) time for D steps of forms up to length L.