Questions and Answers
- The instructor asked if there were any questions, and it was stated that there were none.
Arrays in Java and Other Languages
- In Java, an array can be declared and instantiated using a name with brackets
[]. - Objects can be added to a variable-length array using an ArrayList.
Types of Arrays in Java
- **Primary Data Types: **
- Integer array
- Float array
- Double array
- Long array
- Short array
- Character array (similar to a string)
COBOL and Assembler Arrays
- In COBOL and assembler, arrays are referred to as tables.
- COBOL arrays can handle thousands of entries (e.g., 500,000). You can declare an array with a substantial number of entries and manage the storage easily.
- COBOL is efficient and flexible, suitable for processing business transactions. Knowledge of COBOL is beneficial for entering various companies.
Employee Table Creation Assignment
- The assignment involves creating an employee table.
- If multiple tables have the same name, suffix them with numbers (e.g., EmployeeTable1, EmployeeTable2).
Data Storage Considerations
- Key data fields for a single employee:
- Hourly Pay
- Hours Worked
- Bonuses
- Deductions
- Employee Name (max length: 25 characters)
- Employee ID (max length: 8 digits)
Field Length Specifications
- Named fields with corresponding byte lengths:
- Employee Name: 25 bytes
- Employee ID: 8 digits
- Hours Worked: 5 digits
- Hourly Pay: 5 bytes
- Bonus: 5 bytes
- Deductions: 5 bytes
Calculating Entry Size
- Total bytes occupied per employee entry:
- (correcting to include all required fields)
- For a table with 110 employee entries:
- bytes total.
Looping and Storing Data
- The first loop involves:
- Reading the dataset and moving employee data into the table, no report creation or printing required during this initial loop.
- Each employee entry in the table must be accessed through a pointer register initialized to the starting byte of the table.
- The pointer register increments by 53 bytes for each subsequent employee entry.
Register Usage
- The base register for a pointer to each entry in the table is crucial. The registration mechanism handles the data efficiently.
- The approach avoids subscripting typically used in other programming languages; instead, displacements are used off a base register in assembler.
Dummy Section and DSECTs
- DSECT stands for Dummy Section, which serves as a template laid over storage but does not allocate storage itself.
- Proper naming conventions (e.g., using
$) for fields within DSECTs are important for clarity and readability. - Any naming and DSECT must not have their corresponding storage defined until set aside above the CSECT.
Using the Dummy Section
- To declare a DSECT, it should not include storage allocation commands such as
DC. It merely describes a layout for the eventual storage allocation. - The implementation of a DSECT involves a
USINGandDROPstatement so that the template follows the register that points at employee entries moving through the table.
Report Generation Loop
- The second programming loop is responsible for generating reports from the entries in the table, traversing through each entry.
- It should not involve any X-reads from external records, as it uses internal data only.
Entry and Exit Linkage
- Standard entry and exit linkage are required in every subprogram, preserving register contents upon entering and leaving subprograms.
- Registers, including caller program registers, must be saved and restored to maintain system integrity.
- Internal and external subprograms can be distinguished within the CSECT structure of assembler programs.
Register Management
- It is essential to avoid name duplication across different CSECTs and maintain clear structure and documentation.
Conclusion
- This concludes the session, and the instructor suggests reviewing the material for understanding and preparation for practical applications in assembly language programming and COBOL assignments.