{"title":"TASH: a free platform-independent graphical user interface development toolkit for Ada","authors":"Terry J. Westley","doi":"10.1145/240678.240714","DOIUrl":null,"url":null,"abstract":"A platform-independent Application Programming Interface (API) for developing Graphical User Interfaces (GUI) is described. This API includes a complete \"thin\" binding to Tel and an experimental \"thick\" binding to Tk from Ada 95. Several features of Ada 95 such as access to subprograms, tagged types, and interface to C were used in this binding. What is a PIGUI? A Platform-Independent Graphical User Interface (PIGUI) toolkit is a software library that a programmer uses to produce GUI code for multiple computer systems. The toolkit presents functions and/or objects (along with a programming approach) which is independent of which GUI the programmer is targeting ... Native look-and-feel is a desirable feature. but is not essential for PIGUis. [4] Examples of PIGUis Some PIGUis currently available for Ada are Screen Machine from Objective Interface Systems (info@ois.com) and OpenUI from Open Software Associates (http://www.osa.com.au). Perhaps the \"hottest\" PIGUI being discussed today among Internet programmers is the Java A WT (Abstract Window Toolkit) from Sun Microsystems (http://java.sun.com). Introduction to TASH TASH [8] is a binding to Tcl!Tk [6] from Ada (requires Ada 95). This binding allows a Tcl!Tk program to use Ada in place of C to implement Tel command procedures. This may be done to increase execution speed, use complex data structures not available in Tel, and to otherwise use capabilities of Ada not found in Tel. It also makes the Tel/Tk library functions available to an Ada program. These include string and list handling. regular expression matching. hash tables, and (most important for this discussion) access to a graphical user interface toolkit. P~nnission to rnak~ digital:hard copi<!s of all or part elf this \\mrk I<.Jr p<!rsonal or dassroom us.: is grant<!d without k<! provid<!d that copi.:s ar<! not mad<! or distrihut<!d tilr prolit or conun.:rcial advantag<!. th<! .:op~Tight notic~. th~ till~ oftht.: puhlicatitlll and its dati.! app~ar. and notic~ is giv~n that ,·opying is hy p<!nnissi<lll of ACM. Inc. To copy oth<!rwis.:. to r~publish. to post on s.:rv.,rs or to r.:distrihuk Ill lists. r<!quir<!s prior sp.:cilic pt.!nnission and/or a 1;.:.1.!'_ '(~19% ACM O-X9791-X08-8/%/0012 3.50 165 The binding to Tel is a complete, thin 1 binding to Tel version 7.5a2. Work is progressing on upgrading it to version 7.5. Thicker binding support is provided by using Ada data types and exceptions for error handling in overloaded subprograms. The binding to Tk is an experimental thick binding to Tk version 4.la2. This paper describes a sample Tk program and discuses some of the rationale for decisions made in designing this binding. Introduction to Tci!Tk Tcl!Tk is [8]: Free: the source code is copyrighted by the Regents of the University of California and Sun Microsystems and is freely available (via anonymous ftp) with few restrictions, Interpreted: although experimental compilers are available (and the TcUTk development group at Sun plans to build one), the code is more commonly interpreted. General purpose: provides general programming facilities such as variables, iteration, condition evaluation, and procedures, Extensible: the language can be easily extended in Tel as well as in C. One of the most popular extensions is Tk, a toolkit for building graphical user interfaces based on the X Window System, Microsoft Windows, and Macintosh, Embeddable: its interpreter is implemented as a library of C functions which can be incorporated into and extended by a larger application. Portable: beginning with Tcl7.5 and Tk4.1. the core TcUTk system is available for Macs and PCs as well as for Unix. Some of the advantages of using Tel in an application are: Rapid development: Because of its extensibility and availability of add-on packages, Tel, along with Tk, provide a higher level language than C. Being an interpreted language also results in quicker turn-around than the traditional edit-compile-link-test cycle of software development. System integration: Tel makes an excellent language for integrating several programs into one single user environment. Because it is embeddable. Tel can also serve as an inter-application language. Many also hope it to be used in the future as an internetworking software agent language. User programming: Where appropriate, users can program an application directly in the scripting language. Many very I A \"thin\" binding attempts to faithfully provide a one-to-one mapping to each data type. function call. and object in the target system. successful applications, such as AutoCad and Excel. provide user-level programming through a custom language. With Tel, the application designer can provide for user programming without having to design and implement a new language. Platforms With introduction of Tel 7.5 and Tk 4.1. Tcl!fk: is available for Macintosh and PC platforms in addition to Unix [7]. Source code can be downloaded for many platforms. Binary programs and libraries are also available for Macs and PCs. The T ASH binding has been built with the freely available GNU New York University Ada Translator (GNAT) [5]. This system is available for several Unix variants and PCs running Windows 3.1 and Windows 95. It is also available for the MachTen operating system on Macs. TASH itself is distributed as source code so that it may be built in any system that supports both Tclffk and GNAT. See Appendix A for instructions for downloading and building TASH. Sample Tci/Tk program Figure 1 shows the window created when a sample TcUTk program, timer. is executed. This program was adapted from the timer program included with the Tk distribution. It implements a simple stop watch which has the ability to start. stop, and reset a timer.","PeriodicalId":429060,"journal":{"name":"TRI-Ada","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1996-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"7","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"TRI-Ada","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/240678.240714","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 7
Abstract
A platform-independent Application Programming Interface (API) for developing Graphical User Interfaces (GUI) is described. This API includes a complete "thin" binding to Tel and an experimental "thick" binding to Tk from Ada 95. Several features of Ada 95 such as access to subprograms, tagged types, and interface to C were used in this binding. What is a PIGUI? A Platform-Independent Graphical User Interface (PIGUI) toolkit is a software library that a programmer uses to produce GUI code for multiple computer systems. The toolkit presents functions and/or objects (along with a programming approach) which is independent of which GUI the programmer is targeting ... Native look-and-feel is a desirable feature. but is not essential for PIGUis. [4] Examples of PIGUis Some PIGUis currently available for Ada are Screen Machine from Objective Interface Systems (info@ois.com) and OpenUI from Open Software Associates (http://www.osa.com.au). Perhaps the "hottest" PIGUI being discussed today among Internet programmers is the Java A WT (Abstract Window Toolkit) from Sun Microsystems (http://java.sun.com). Introduction to TASH TASH [8] is a binding to Tcl!Tk [6] from Ada (requires Ada 95). This binding allows a Tcl!Tk program to use Ada in place of C to implement Tel command procedures. This may be done to increase execution speed, use complex data structures not available in Tel, and to otherwise use capabilities of Ada not found in Tel. It also makes the Tel/Tk library functions available to an Ada program. These include string and list handling. regular expression matching. hash tables, and (most important for this discussion) access to a graphical user interface toolkit. P~nnission to rnak~ digital:hard copi
二进制程序和库也可用于mac和pc。T - ASH绑定是使用免费的GNU New York University Ada Translator (GNAT)[5]构建的。该系统可用于多种Unix变体以及运行Windows 3.1和Windows 95的pc机。它也适用于mac上的MachTen操作系统。TASH本身是作为源代码发布的,因此它可以构建在同时支持Tclffk和GNAT的任何系统中。有关下载和构建TASH的说明,请参见附录A。示例Tci/Tk程序图1显示了示例ttk程序创建时的窗口,计时器。是执行。该程序改编自Tk发行版中包含的定时器程序。它实现了一个具有启动能力的简单秒表。停止,并重置计时器。