Results 1 -
9 of
9
Back to the future: The story of Squeak, A practical Smalltalk written in itself
- In Proceedings OOPSLA ’97, ACM SIGPLAN Notices
, 1997
"... Squeak is an open, highly-portable Smalltalk implementation whose virtual machine is written entirely in Smalltalk, making it easy to debug, analyze, and change. To achieve practical performance, a translator produces an equivalent C program whose performance is comparable to commercial Smalltalks. ..."
Abstract
-
Cited by 154 (2 self)
- Add to MetaCart
Squeak is an open, highly-portable Smalltalk implementation whose virtual machine is written entirely in Smalltalk, making it easy to debug, analyze, and change. To achieve practical performance, a translator produces an equivalent C program whose performance is comparable to commercial Smalltalks. Other noteworthy aspects of Squeak include: a compact object format that typically requires only a single word of overhead per object; a simple yet efficient incremental garbage collector for 32-bit direct pointers; efficient bulkmutation of objects; extensions of BitBlt to handle color of any depth and anti-aliased image rotation and scaling; and real-time sound and music synthesis written entirely in Smalltalk. Overview Squeak is a modern implementation of Smalltalk-80 that is available for free via the Internet, at
Code Migration Through Transformations: An Experience Report
, 1998
"... One approach to dealing with spiraling maintenance costs, manpower shortages and frequent breakdowns for legacy code is to "migrate" the code into a new platform and/or programming language. The objective of this paper is to explore the feasibility of semiautomating such a migration process in the p ..."
Abstract
-
Cited by 21 (9 self)
- Add to MetaCart
One approach to dealing with spiraling maintenance costs, manpower shortages and frequent breakdowns for legacy code is to "migrate" the code into a new platform and/or programming language. The objective of this paper is to explore the feasibility of semiautomating such a migration process in the presence of performance and other constraints for the migrant code. In particular, the paper reports on an experiment involving a medium-size software system written in PL/IX. Several modules of the system were migrated to C++, first by hand and then through a semiautomatic tool. After discovering that the migrant code was performing up to 50% slower than the original, a second migration effort was conducted which improved the performance of the migrant code substantially. The paper reports on the transformation techniques used by the transformation process and the effectiveness of the prototype tools that were developed. In addition, the paper presents preliminary results on the evaluation o...
The Realities of Language Conversions
- IEEE Software
, 2000
"... Billions of lines that have been written in COBOL, PL/I and other old programming languages are still in active use. Many commercial efforts to convert these languages to more modern languages have been started. However, few successful results have been achieved so far, which makes one wonder ab ..."
Abstract
-
Cited by 19 (6 self)
- Add to MetaCart
Billions of lines that have been written in COBOL, PL/I and other old programming languages are still in active use. Many commercial efforts to convert these languages to more modern languages have been started. However, few successful results have been achieved so far, which makes one wonder about the reasons why. This paper aims to shed light on the realities of language conversions and discusses some of the possibilities and limitations of automated language converters. We argue that the difficulties of source-to-source conversion are manifold and grossly underestimated. We illustrate that it is very challenging to resolve the intricate problems connected to language conversions. Categories and Subject Description: D.2.6 [Software Engineering]: Programming Environments---Interactive; D.2.7 [Software Engineering]: Distribution and Maintenance ---Restructuring; D.3.4. [Processors]: Parsing. Additional Key Words and Phrases: Reengineering, System renovation, Software renovat...
Ephedra - A C to Java Migration Environment
, 2002
"... The Internet has grown in popularity in recent years, and thus it has gained importance for many current businesses. They need to o#er their products and services through their Web sites. To present not only static content but also interactive services, the logic behind these services needs to be pr ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
The Internet has grown in popularity in recent years, and thus it has gained importance for many current businesses. They need to o#er their products and services through their Web sites. To present not only static content but also interactive services, the logic behind these services needs to be programmed.
C to Java Migration Experiences
, 2002
"... With the growing popularity of the Java programming language for both client and server side applications in network-centric computing, there is a rising need for programming libraries that can be easily integrated into Java programs. In a previous paper, we surveyed current strategies for integrati ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
With the growing popularity of the Java programming language for both client and server side applications in network-centric computing, there is a rising need for programming libraries that can be easily integrated into Java programs. In a previous paper, we surveyed current strategies for integrating C source code into Java programs, pointed out their weaknesses and presented goals for an improved migration approach. In this paper, we present the Ephedra approach to software migration and report on the results of three case studies transliterating C source code to Java using the Ephedra environment.
Strategies for Migration from C to Java
, 2001
"... With the growing popularity of the Java programming language for both client and server side applications in network centric computing, there is a rising need for programming libraries that can be easily integrated into Java programs. Many mature programming libraries exist for the C programming lan ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
With the growing popularity of the Java programming language for both client and server side applications in network centric computing, there is a rising need for programming libraries that can be easily integrated into Java programs. Many mature programming libraries exist for the C programming language. This paper surveys approaches to the migration of C source code to Java and evaluates their usefulness with respect to the integration of the migrated code into Java programs.
Mining API Mapping for Language Migration
"... To address business requirements and to survive in competing markets, companies or open source organizations often have to release different versions of their projects in different languages. Manually migrating projects from one language to another (such as from Java to C#) is a tedious and error-pr ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
To address business requirements and to survive in competing markets, companies or open source organizations often have to release different versions of their projects in different languages. Manually migrating projects from one language to another (such as from Java to C#) is a tedious and error-prone task. To reduce manual effort or human errors, tools can be developed for automatic migration of projects from one language to another. However, these tools require the knowledge of how Application Programming Interfaces (APIs) of one language are mapped to APIs of the other language, referred to as API mapping relations. In this paper, we propose a novel approach, called MAM (Mining API Mapping), that mines API mapping relations from one language to another using API client code. MAM accepts a set of projects each with two versions in two languages and mines API mapping relations between
LO/SO Amalgamation: A Technique for Constructing Programming Languages under Object-Oriented Operating Systems
, 1993
"... This paper proposes a technique for constructing programming languages under object-oriented operating systems. Such operating systems consist of independent modules, so one can build flexible systems and applications. However, traditional object-oriented operating systems provide users with system' ..."
Abstract
- Add to MetaCart
This paper proposes a technique for constructing programming languages under object-oriented operating systems. Such operating systems consist of independent modules, so one can build flexible systems and applications. However, traditional object-oriented operating systems provide users with system's object model (system object), so that programming language designers have to map their object model (language object) onto the system object model. In our proposed technique, called LO/SO amalgamation, language objects and system objects can be treated in a uniform fashion. So, it is now possible to specify system objects by using the rich programming environment supported by programming languages. Furthermore, message passing between two types of objects can be implemented efficiently by using our technique. In this paper, we present the concept of LO/SO amalgamation, and an evaluation of our prototype language, Apertos ConcurrentSmalltalk (ACST), which incorporates LO/SO amalgamation.
Automating Language Conversion: A Case Study (an extended abstract)
"... Language conversion is a laborious process. Achieving the maximum efficiency of conversion without compromising the quality of converted system is the programmers’ dream. This paper illustrates the quest for this trade-off by a case study. We consider an industrial reengineering project, which inclu ..."
Abstract
- Add to MetaCart
Language conversion is a laborious process. Achieving the maximum efficiency of conversion without compromising the quality of converted system is the programmers’ dream. This paper illustrates the quest for this trade-off by a case study. We consider an industrial reengineering project, which included translation of a client/server system written in a proprietary language into two different programming languages. We also discuss various factors that affect the automation level of language conversions 1. 1.

