A JAR (Java Archive) is typically used to incorporate code and associated resources into one file to distribute Java software. A cryptographically signed JAR file provides assurance about the authorship of the contents of the archive. We use Signed JAR files as part of a recommendation system. In this system different recommenders will evaluate the same software, and they need to sign the exact same JAR file. The user wants to verify that recommendations (i.e., signatures) received independently from multiple parties, e.g., for a software update, pertain to the exact same software. Related problems occur when users try to sign bundles consisting of files maintained on different servers. The tools in the Java Development Kit do not support this kind of application. We propose techniques to enable the signing of distribute bundles and techniques by which recommenders can sign software independently and such that verifiers are enabled to combine the recommendations. There changes to the Java jarsigner tool would avoid special purpose code which duplicates many of the same capabilities of the existing tools.
The discussed "Stacking the Deck" attack and our solution are relevant only to software controlled by loosely constituted communities. Developers can change their vision and abandon features that are essential for certain users. Moreover, well funded attackers can effectively take control of a project by orchestrating the transfer of the leadership of the developers to people that they control. We propose a mechanism to reduce the level of trust that users are required to have in the maintainers of free and open-source agent software. In fact, with the proposed method, it is sufficient for the user to trust that his constellation of independent testers are safe from attack, even as all testers may be subject to different attacks. Our solution inserts independent intermediaries (testers) between the developers and the end-users. To encourage independence of the testers, essential for the desired security, a distributed recommendation mechanism is employed, suggesting testers for end-users based on preferences of immediate connections, and on the frequency of usage of these testers in her neighborhood. Metrics of success and experiments for identifying promising parameters are reported.
EL LENGUAJE DE PROGRAMACION JAVA HA ADOPTADO UN MECANISMO PARA DEFINIR TIPOS PARAMETRIZADOS, EL CUAL ESTARA DISPONIBLE PARA LOS USUARIOS EN LA PROXIMA VERSION DE SU COMPILADOR. LA PRIMERA ESPECIFICACION FORMAL PARA INCLUIR GENERICOS EN JAVA FUE PUBLICADA HACE DOS ANOS Y UNA NUEVA VERSION EL PASADO MES DE JUNIO DEL 2003. EN ESTA ESPECIFICACION, SE PROPONE EXTENDER EL SISTEMA DE TIPOS BASANDOSE EN EL SISTEMA DE CUANTIFICACION RESTRINGIDA F (F-BOUNDED QUANTIFICATION) CON EL FIN DE SOPORTAR DIRECTAMENTE POLIMORFISMO PARAMETRICO EN JAVA. UN METODO BINARIO EN AQUEL QUE CONTIENE UNO O MAS PARAMETROS DEL MISMO TIPO DEL OBJETO QUE RECIBE EL MENSAJE. EL POLIMORFISMO BASADO EN EL SISTEMA DE RESTRICCION F Y LOS METODOS BINARIOS NO PUEDEN SER COMBINADOS EN FORMA SENCILLA EN AQUELLOS LENGUAJES DE PROGRAMACION ORIENTADOS A OBJECTOS QUE CONTIENEN UN SISTEMA DE TIPOS NOMINAL Y BASAN LA SELECCION DEL METODO A EJECUTAR SOLO EN EL TIPO DEL OBJETO QUE RECIBE EL MENSAJE. EN ESTE ARTICULO, SE PRESENTAN ALGUNOS PROBLEMAS QUE APARECEN EN LA IMPLEMENTACION DE PROGRAMAS EN JAVA CUANDO ES NECESARIO DEFINIR CLASES E INTERFACES PARAMETRIZADAS
Despite the absence of first-class functions in Java, it is possible to program in the style of functional languages like ML or Haskell using the new capabilities in Java 1.5. We show how to use generic classes to program higher-order functions and how this interacts with object-oriented programming. We also show the necessity of the wildcard construct in Java and reveal several pitfalls. We conclude that the constructs in Java do not permit a functional framework that is completely compatible with object-oriented programming.
The overarching goal of the current thesis is to pave the road towards a comprehensive solution to the decades old problem of integrating databases and programming languages. For this purpose, we propose a record calculus as an extension of an ML-style functional programming language core. In particular, we describe: (1) a set of polymorphic record operations that are expressive enough to define the operators of the relational algebra; (2) a type system together with a type inference algorithm, based on the theory of qualified types, to correctly capture the types of said polymorphic record operations; (3) an algorithm for checking the consistency (satisfiability of predicates) of the inferred types; (4) an algorithm for improving and simplifying types; and (5) an outline of an approach to explaining type errors in the resulting type system in an informative way.
A database programming language is a programming language extended with database operations. In this paper we extend a core functional language with explicitly labeled tuples and the operations of the relational algebra. We present the functional database programming language Neon along with a polymorphic type inference algorithm that can infer a 'type formula', that is, a type together with type constraints, for any valid Neon program. Neon has the following salient features: (1) let-bound polymorphism, (2) explicitly labeled tuples, (3) polymorphic tuple operations, notably extension, (4) sets and set operations, and (5) polymorphic relational algebra operations, notably natural join. To type-check a Neon program the standard Damas-Milner type inference algorithm needs to be extended so that it collects constraints on type variables imposed by tuple and relational operations. The type inference algorithm has been successfully implemented in Haskell.
The control unit of the Roctest® Pencel Pressuremeter (PPMT) has been instrumented to enable digital pressures and volumes to be recorded. This digital information is now acquired through a stand-alone software package, called APMT that incorporates the required calibrations to provide engineers with instantaneous reduced data along with pertinent engineering strength and stiffness parameters. Pushed-in PPMT tests were performed in Florida sands and clays to standardize the testing procedure for the Florida Department of Transportation (FDOT). PPMT tests were conducted in soundings advanced using the FDOT Cone Penetrometer (CPT) testing rig. Pushing the PPMT combined with the automation allows engineers to efficiently use reduced stress-strain data to determine elastic moduli, limit pressures and lift-off pressures. These parameters were evaluated and proven to be realistic when compared to conventional pressuremeter (PMT) and dilatometer (DMT) data. PPMT and DMT data from the Florida soils was used to determine p-y curves based on Robertson's methods (1986, 1989). These curves were compared and produced similar results. Seven historical field sites with instrumented and tested laterally loaded piles; PMT and DMT tests were evaluated. PMT, mostly from PPMT tests, and DMT p-y curves, again based on Robertson's methods were developed and used with the FBMultiPier software to develop ground-line load-deflection data. The PMT and DMT predicted data was compared to measured load-deflection data from the instrumented piles. The PMT testing from these historical sites was performed without following a standard procedure and the resulting comparisons showed that the inconsistent testing produced highly variable predictions, highlighting the need for a standard PPMT test procedure. Regardless of these inconsistencies, both the PMT and DMT predictions were comparable to the measured data.
Citizen/popular initiatives provide a way for the inclusion of constitutional or statutory proposals on the ballot (e.g., at an election) if enough signatures are collected in support of the proposal [1, 2, 3, 4]. Once citizens are enabled to digitally sign such initiatives remotely, the next challenge will be to provide support for verified eligible citizens to debate on running initiatives. Intelligent ways of structuring information for easy access and cooperation is a major research interest in computer science, with results like WWW, Semantic Web, Forums, Blogs, Slashdot. We propose here a new interaction paradigm for debates in the setting where participants are verified for eligibility and have equal weight. The estimation of the popular support for proposed initiatives and emerging comments (justifications) forms a basis (and a by-product) of such debates. This paradigm can find additional applications in supporting debates of shareholders for decision making, as well as for debates of working groups and committees, or for the administration of other entities like towns and counties.
Modern object-oriented languages like Java and C# do not support parametric polymorphism and do not have a traditional module system to allow the development of large systems. They overload the class mechanism with several tasks and they use packages and namespaces to organize clusters of classes providing weak control for accessing members. Other languages that support generic programming and objects do not have a simple object model to support object-oriented features. In this thesis the language MOOL is presented. MOOL is a class-based object-oriented language that supports modular programming and genericity. The main goal in the design of MOOL was simplicity rather than efficiency. MOOL contains separated mechanisms for different concepts like classes and modules, which are unified in other languages. MOOL is not a pure object-oriented language where everything is an object. Non-object features like functions and modules are part of the language to enhance expressivity, to structure programs and to support code reuse.
Java does not provide built-in methods for constructing and accessing tuples and lists. In other programming languages, especially functional languages, these data structures are an integral part of the language. In fact, programming without tuples and lists is inconceivable in these languages.This paper will discuss a method for adding these capabilities to Java. We propose a syntax for tuples and lists that fits in with the existing Java syntax. We define a semantics for the new constructs based on simple Java 1.4 and 1.5 classes. We describe our implementation of a source level translation for the extended language to Java.
This paper presents a model of translation of functional languages. The source language of the translation is a simple extension of lambda expressions and the target language is a language in continuation passing style (CPS).We have implemented, in SML [5], the translation and the interpreters of both the source and target languages. These systems are based on the definitions of the CPS semantics by Appel [1]. The main contribution is a complete and executable framework for a CPS compiler, allowing the study of a wide range of performance issues among different elements. Another contribution is the implementation of a succeed and fail continuation model. The approach eliminates overhead when using exception handling and was described in [4].
The Unicode standard provides several algorithms, techniques, and strategies for assigning, transmitting, and compressing Unicode characters. These techniques allow Unicode data to be represented in a concise format in several contexts. In this paper we examine several techniques and strategies for compressing Unicode data using the programs gzip and bzip. Unicode compression algorithms known as SCSU and BOCU are also examined. As far as size is concerned, algorithms designed specifically for Unicode may not be necessary.
A dissertation submitted to the College of Engineering at Florida Institute of Technology in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer Science
El lenguaje de programacion Java ha adoptado un mecanismo para definir tipos parametrizados, el cual estara disponible para los usuarios en la proxima version de su compilador. La primera especificacion formal para incluir genericos en Java fue publicada hace dos anos y una nueva version el pasado mes de Junio del 2003. En esta especificacion, se propone extender el sistema de tipos basandose en el sistema de cuantificacion restringida F (F–Bounded quantification) con el fin de soportar directamente polimorfismo parametrico en Java. Un metodo binario en aquel que contiene uno o mas parametros del mismo tipo del objeto que recibe el mensaje. El polimorfismo basado en el sistema de restriccion F y los metodos binarios no pueden ser combinados en forma sencilla en aquellos lenguajes de programacion orientados a objectos que contienen un sistema de tipos nominal y basan la seleccion del metodo a ejecutar solo en el tipo del objeto que recibe el mensaje. En este articulo, se presentan algunos problemas que aparecen en la implementacion de programas en Java cuando es necesario definir clases e interfaces parametrizadas
Recent and (continuing) rapid increases in computing power now enable more of humankind's written communication to be represented as digital data. The most recent and obvious changes in multilingual information processing have been the introduction of larger character sets encompassing more writing systems. Yet the very richness of larger collections of characters has made the interpretation and processing of text more difficult. The many competing motivations (satisfying the needs of linguists, computer scientists, and typographers) for standardizing character sets threaten the purpose of information processing: accurate and facile manipulation of data. Existing character sets are constructed without a consistent strategy or architecture. Complex algorithms and reports are necessary now to understand raw streams of characters representing multilingual text. We assert that information processing is an architectural problem and not just a character set problem. We analyze several multilingual information processing algorithms (e.g., bidirectional reordering and character normalization) and we conclude that they are more dangerous than beneficial. The countless number of unexpected interactions suggest a lack of a coherent architecture. We introduce abstractions, novel mechanisms, and take the first steps towards organizing them into a new architecture for multilingual information processing. We propose a multilayered architecture which we call Metacode where character sets appear in lower layers and protocols and algorithms in higher layers. We recast bidirectional reordering and character normalization in the Metacode framework.
Steve J. Chapin合作论文数Department of Electrical Engineering and Computer Science;Syracuse University1
Markus Zanker合作论文数Free University of Bolzano-Bozen1