  Block-based programming languages like Scratch are increasingly popular for
programming education and end-user programming. Recent program analyses build
on the insight that source code can be modelled using techniques from natural
language processing. Many of the regularities of source code that support this
approach are due to the syntactic overhead imposed by textual programming
languages. This syntactic overhead, however, is precisely what block-based
languages remove in order to simplify programming. Consequently, it is unclear
how well this modelling approach performs on block-based programming languages.
In this paper, we investigate the applicability of language models for the
popular block-based programming language Scratch. We model Scratch programs
using n-gram models, the most essential type of language model, and
transformers, a popular deep learning model. Evaluation on the example tasks of
code completion and bug finding confirm that blocks inhibit predictability, but
the use of language models is nevertheless feasible. Our findings serve as
foundation for improving tooling and analyses for block-based languages.
