'''QBasic''' is an [[integrated development environmentBASIC]] (IDE) and [[BASIC interpreter|interpreter]] for a variety of dialects of [[BASIC]] which are based on [[QuickBASICBASIC]]. Code entered into the IDE is compiled into an [[intermediate representationBASIC]] (IR), and this IR is immediately executed on demand within the IDE.<ref name="GBvsQB" />
Like QuickBASIC, but unlike earlier versions of Microsoft BASIC, QBasic is a [[structured programmingBASIC]] language, supporting constructs such as [[subroutine]]s.<ref name="subroutines"/> [[Line number]]s, a concept often associated with BASIC, are supported for compatibility but are not considered good form, having been replaced by descriptive [[line label]]s.<ref name="GBvsQB"/> QBasic has limited support for user-defined data types ([[record (computer science)|structures]]), and several primitive types used to contain strings of text or numeric data.<ref name="types"/><ref name="limits"/> It supports various inbuilt functions.
For its time, QBasic provided a state-of-the-art IDE, including a [[debugger]] with features such as on-the-fly expression evaluation and code modification.{{Citation needed|date=October 2021}}