35 Questions
What does 'syntactic correctness' refer to in software development?
Adhering to the relevant syntax of the programming language
Why is syntactic correctness considered a basic prerequisite for working with a program?
It allows the program to be compiled without error messages
Which type of grammars are commonly used to define programming languages?
Type-2 grammars
Why is the word problem for formal languages undecidable for Type-0 grammars?
They are too complex to analyze
What distinguishes 'semantic correctness' from 'syntactic correctness' in software development?
Semantic correctness deals with program functionality
Why is achieving 'semantic correctness' considered more challenging than 'syntactic correctness'?
'Semantic correctness' requires more computational resources
What is the first challenge often faced in achieving semantic correctness?
Undefined program purpose
What concept demonstrates that the semantic correctness of programs is an undecidable problem in general?
Rice's theorem
What type of correctness focuses on adhering to programming guidelines and best practices?
Pragmatic correctness
Which theory considers the efficiency of programs?
Complexity theory
What is usually used to check semantic correctness in practice?
Various forms of software tests
What type of methods aim to support the development of software such that its correctness can be proved?
Formal methods
'Agile development methods' are described as more suitable for which type of applications?
'Applications in which correctness is very important'
'Formal methods' require an exact specification of what to be verified, making them less suitable for applications where what is unclear?
'What exactly the application is supposed to ultimately do'
'Formal methods' are based on a formal specification formulated in the form of preconditions, postconditions, and assertions, which are based on what?
'Predicate calculus'
Which concept involves refining a formally specified operation into more concretely described operations until program code is obtained?
Formal methods
What is the main difficulty in proving the correctness of while loops?
Distinguishing between partial and total correctness
What is a deadlock in the context of software safety?
A situation where different parts of a system block each other
What is the purpose of Hoare logic?
To formulate and prove mathematical statements about programs
What is a Hoare triple?
A statement regarding the correctness of a program
What is the difference between partial and total correctness in a program?
Partial correctness means the program returns the correct result, while total correctness means it always terminates
What is the purpose of proving the correctness of a program?
To ensure it meets its specifications
What is the role of loop invariants in a program?
To describe what remains unchanged by a loop
What is the purpose of proving there are no deadlocks in a system?
To ensure the system is safe
What is the significance of pre- and post-conditions in a program?
They define the initial and final states of a function
What is the primary use of pre- and post-conditions in program code?
To document and check expected properties at a point in the code
What is the difference between safety and security in the context of IT systems?
Safety refers to the functional safety of a system, while security refers to information security
What are common criteria used for?
To certify the IT security of IT systems
What is an assertion in the context of testing?
A statement that is evaluated during test runs
What is the purpose of using formal development methods in high-risk systems?
To ensure high-security requirements are met
What are the three concepts of information security in computer science?
Security, availability, and integrity
What is the purpose of introducing conditions that describe error cases in a system?
To ensure that certain errors cannot occur
What is the primary use of formal specifications and design methods in high verification levels?
To ensure high-security requirements are met
What is the difference between systematic testing and formal development methods in the context of functional safety?
Systematic testing is used for lower risk systems, while formal development methods are used for higher risk systems
What is the purpose of switching off assertions in the production system?
To improve the efficiency of the production system
Learn about the importance of program verification in software development, specifically focusing on the concept of correctness and syntactic correctness in programming languages.
Make Your Own Quizzes and Flashcards
Convert your notes into interactive study material.
Get started for free