Programming Languages, Formal Systems, and Software Engineering
Software engineers are looking for ways to improve the quality and reliability of software as well as reduce the cost of software development. The research involves development, testing, and maintenance of software as well as the development of languages to assist in software development.
Formal systems use mathematical logic to prove the correctness of a system, and they are used to specify, develop, and verify both software and hardware systems. In traditional software engineering, designers attempt to prove that a system will be reliable and secure by exhaustive testing, probability theory, and simulation. But it is impossible to test every scenario a system will face. By using formal methods, designers can "prove" the correctness of their system by modeling it mathematically.
Programming languages are used to control the behavior of a computer. There are thousands of them. Each has its strengths and weaknesses, and they can be general purpose or domain-specific. Which one is used depends on the type of computer its run on, what sort of program is being run, and the expertise of the programmer. More and more, software systems consist of reusable components and interfaces for third-party programmers to extend the systems (e.g., plug-ins and applets for Web browsers), and research is addressing these new systems.
--
Last Modified April 14 2006 08:36:45.