An object_declaration declares a stand-alone object with a given nominal subtype and, optionally, an explicit initial value given by an initialization expression . For an array, task, or protected object, the object_declaration may include the definition of the (anonymous) type of the object.