To: J3 J3/22-195 From: Bill Long Subject: F202Y feature : BITS Date: 2022-October-17 Introduction: At a late WG5 meeting for F2008, we downsized the proposal to reduce the number of "large" features from three to one. Kept was the SPMD parallel programming using coarrys, and dropped were the BITS feature and the Intelligent Macros feature. The macros feature has been supplanted by the Generic Programming feature for F202Y, and some of the F2023 language syntax features. The BITS feature was described in the last F2008 draft before the reduction (07-007r2.pdf) in the Introduction as "A BITS data type for non-numeric programming and enhanced handling of binary, octal, and hexadecimal constants.". The BITS type was originally proposed as a performance and portability feature that got around the problem of the leftmost bit in an INTEGER being unspecified. As a feature for F202Y, we can leverage (and not have to repeat) all of the discussion and work done for the previous standard draft and can reuse a lot of the old edits. Discussion: The BITS data type is an intrinsic type with one kind-type parameter that indicates the number of bits in a data element of the type. Constants for the type are the existing boz-literal-constants. Conversion of boz-constants to type INTEGER and REAL were already specified in F2003 and that same scheme can be used for conversion of the values of BITS variables to INTEGER and REAL data items. The binary operators for BITS objects are the existing .and., .or., and .xor., with .not. as the unary operator. The descriptions of several intrinsic functions, such as IAND, IOR, IEOR, and NOT can be simplified if rewritten for BITS data. The previous draft allowed association of INTEGER arguments with BiTS dummy arguments of the same BIT_SIZE(). BITS data elements can be used to represent compressed genomic data, initially represented by a string of A, C, T, and G characters, with the letters (case-independent) efficiently mapped to {00, 01, 10, 11} permitting 32 characters to be packed into a single BITS(64) data elements. Similarly, signal data that is provided as a sequence of bits can be more easily handled. This paper proposes for F202Y the semantics and syntax for BITS from J3/07-007r2.pdf, as modified where necessary to account for changes made in F2018 and F2023. The edits are not specified in this paper but can be largely copied from the old 007 draft, with modifications where needed to accommodate changes in later standards. --END--