150 likes | 307 Views
Language Group Research Project ADA. Seetharaman Sankaran 000099181. Introduction . Ada was named after Ada Lovelace, who is often credited with being the first computer programmer.
E N D
Language Group Research ProjectADA Seetharaman Sankaran 000099181
Introduction • Ada was named after Ada Lovelace, who is often credited with being the first computer programmer. • Ada is a structured, statically typed, imperative, and object-oriented high-level computer programming language. • Designed by a team led by Jean Ichbiah of CII Honeywell Bull under contract to the United States Department of Defense during 1977–1983 to supersede the hundreds of programming languages then used by the DOD.
Introduction • Ada is strongly typed (even for integer-range), and compilers are validated for reliability in mission-critical applications, such as avionics software. • Ada was originally targeted at embedded and real-time systems. Examples of systems where Ada is used include avionics, weapons (including thermonuclear weapons), and spacecraft.
Inheritance • Earlier in Ada 83 Support for Inheritance was through the use of ‘generic’ packages and by the implementation of variant records. • Ada 95 uses ‘tagged types’ to support inheritance and allows the developer to derive child packages directly from the parent, with or without an extension of the structure and the methods of the parent. • Does not support multiple inheritance. • Ada 95 provides polymorphism through the use of class-wide types and type extensions, which can contextually recognize the appropriate operation to perform.
Component Reuse Component reusability is achieved through genericity and package implementation.
Information Hiding • ADA uses a structuring unit known as a package to encourage encapsulation and information hiding. A package consisted of two parts: • the specification, describing the functions of the particular package • the implementation, specifying the underlying operations of that package and the persistent data associated with the package. • The two elements could be separated, and even compiled separately, allowing for information hiding in data abstraction. • Information within a package marked as "private" would be inaccessible to any code outside the package implementation, which allows for increased enforcement of data security. • Genericity was even supported by ADA through the generic keyword. In total, ADA supported desirable data abstraction principles that allowed for extensibility and easier code maintenance and reuse, without sacrificing security or reliability
Message Binding • Ada 83 Supports static or early binding. All references had to be resolved at compile time to create an executable. • Ada 95 Supports dynamic or late binding. Allows the developer to create applications that resolve messaging references during execution based on the actual instance of the object involved.
Database Support • The GNADE (GNat Ada Database Environment) project is an open source project with the primary goal to provide all tools and packages necessary to create an Ada 95 development environment providing a seamless integration of relational databases and other database products with Ada 95. • The project provides the following software packages: • Thin bindings to different RDBMS products like Oracle, PostgreSQL, MySQL using ODBC. • Embedded SQL. • Native bindings to other RDBMS approaches such as sqlite http://gnade.sourceforge.net/
Web Development • AWS stands for Ada Web Server • AWS is a complete framework to develop Web based applications. The main part of the framework is the embedded Web server. This small yet powerful Web server can be embedded into your application so your application will be able to talk with a standard Web browser like Microsoft Internet Explorer or Netscape Communicator for example. Around this Web server a lot of services have been developed.
Web Development The framework includes: • A Web parameters module. This module takes care of retrieving the forms or URL parameters and to build an associative table for easy access. • A session server, this is a very important module to be able to keep client's data from page to page. • Support SOAP to develop Web Services. • A tool (based on ASIS) to generate a WSDL document from an Ada spec. • A tool to generate Web Services stubs/skeletons from a WSDL document. • A template parser, this module makes it possible to completely separate the Web design from the code. No more scripting into your Web page. This template engine is amazingly fast due to its concurrent cached compiled templates support. • An Ajax runtime based on templates hiding JavaScript. • Support for Secure Sockets (HTTPS/SSL), this is based on OpenSSL library. • Support for large servers using dispatchers based on URI, request methods, timers. • Support for virtual hosting (dispatchers based on the host name). • Support for server push. • A directory browser ready to be used in any application. • A status page to get many information about the current AWS server. • A log module. Log files keep information about all resources requested to the server. • Hot plug modules which can be loaded/unloaded dynamically to add specific features to a server. • A light communication API to exchange data between applications using the HTTP protocol. • A configuration API to tune/change the server parameters without recompilation. • A client API to retrieve any Web page from a Web site. • A Web Page service to build a simple static page server. • Support for SMTP, LDAP and Jabber protocols.
Pro’s and Con’s Pro’s: • strong typing, modularity mechanisms (packages), run-time checking, parallel processing (tasks), exception handling, and generics. Ada 95 added support for object-oriented programming, including dynamic dispatch. • Ada also supports a large number of compile-time checks to help avoid bugs that would not be detectable until run-time in some other languages or would require explicit checks to be added to the source code. Con’s: • Not much support for windows operating system • No support for multiple inheritance
COST • Ada Complier is free but the cost for development environment depends upon the vendor. • GNAT Programming Studio PRO -$183-$400 • GNAT Programming Studio Academic edition is free after registration