1. Home
  2. Computer
  3. Programmin­g

Computer

Programmin­g

7215 sites listed · page 138 of 145

JBurg: a Bottom-Up Rewrite Machine Generator for Java JBurg: a Bottom-Up Rewrite Machine Generator for Java- Java-based BURG (code emitter generator) which can also be used as a general purpose dynamic programming engine. [Open sourc… Fnc-2 Attribute Grammar System Fnc-2 Attribute Grammar System- An attribute grammar system based on strongly non-circular AGs that perform space optimizations. Micro Attribute Grammar System Micro Attribute Grammar System- The UU_AG system is a very simple program that reads a set of files containing an attribute grammar, in which semantic functions are described thro… lrc attribute grammar system lrc attribute grammar system- The system generates efficient incremental attribute evaluators and was written by one of the attribute-grammar formalizers. Inter-Platform Mobility Project Inter-Platform Mobility Project- Homepage of the IPMS project. Provides an extension for developing mobile agents on the JADE platform. SOMA: Secure and Open Mobile Agent SOMA: Secure and Open Mobile Agent- A mobile agent system. Technical description and code download. Mobile Agents - Process migration technology and its implications Mobile Agents - Process migration technology and its implications- Mobile agents are agents that can physically travel across a network, and perform tasks on machines that provide… Under the Hood: The architecture of aglets Under the Hood: The architecture of aglets- Find out about the inner workings of aglets, IBM Japan's Java-based autonomous software agent technology Kaariboga Mobile Agents Kaariboga Mobile Agents- Free framework for mobile agents implemented in Java. Aglets Aglets- The Aglets Software Development Kit (ASDK) is a framework and environment for researching and developing mobile agents. Microsoft Agent Scripting Software (MASS) Microsoft Agent Scripting Software (MASS)- An easy to use tool to create MS Agent scripts with animated, speaking characters. The program outputs the complete HTML page, ready to … DesktopMates DesktopMates- Animated human like characters that live on your desktop as your personal interactive companion and assistant capable of speech and doing tasks for you using Microso… MASH - The Microsoft Agent Scripting Helper MASH - The Microsoft Agent Scripting Helper- A tool to experiment with, compose, and playback Microsoft Agent scripts with no programming experience required. Presentations may be… UMBC: KQML UMBC: KQML- Information and resources for the Knowledge Query Manipulation Language (KQML) FIPA ACL FIPA ACL- Specifications of the Agent Communication Language. The FIPA is a consortium of experts providing specifications and recommendations for agent technologies. J.Agentx J.Agentx- A portable, lightweight implementation of the AgentX protocol for SNMP Agent Extensibility. This Java-based package was developed at the University of Coimbra, Portugal.… Use Thread Pools Correctly: Keep Tasks Short and Nonblocking Use Thread Pools Correctly: Keep Tasks Short and Nonblocking- A thread pool hides a lot of details, but to use it effectively some awareness of some things a pool does under the c… Break Up and Interleave Work to Keep Threads Responsive Break Up and Interleave Work to Keep Threads Responsive- Breaking up is hard to do, but interleaving can be even subtler. Avoid Exposing Concurrency: Hide It Inside Synchronous Methods Avoid Exposing Concurrency: Hide It Inside Synchronous Methods- Explains where to start when trying to add concurrency to a mass of existing code. Prefer Structured Lifetimes: Local, Nested, Bounded, Deterministic Prefer Structured Lifetimes: Local, Nested, Bounded, Deterministic- What's good for the function and the object is also good for the thread, the task, and the lock. Practical Lock-Free Buffers Practical Lock-Free Buffers- Looks at how lock-free programming avoids system failure by tolerating individual process failures. Prefer Futures to Baked-In "Async APIs" Prefer Futures to Baked-In "Async APIs"- Explains that it's important to separate "what" from "how" when designing concurrent APIs. Use Threads Correctly = Isolation + Asynchronous Messages Use Threads Correctly = Isolation + Asynchronous Messages- Motivates and illustrate best practices for using threads - techniques that will make concurrent code easier to write co… It's Not Always Nice To Share It's Not Always Nice To Share- It isn't just languages that have poor support for thread local storage, but operating systems too Introduction to Priority Inversion Introduction to Priority Inversion- Gives an introduction to priority inversion and shows a pair of techniques to avoid them. Fundamental Concepts of Parallel Programming Fundamental Concepts of Parallel Programming- Explains fundamental concepts for moving from a linear to a parallel programming model Real-world Concurrency Real-world Concurrency- Describes some key principles that will help mastering the "black art" of writing multithreaded code. Lock-Free Code: A False Sense of Security Lock-Free Code: A False Sense of Security- Writing lock-free code can confound anyone-even expert programmers, as Herb shows in this article. Sharing Is the Root of All Contention Sharing Is the Root of All Contention- Sharing requires waiting and overhead, and is a natural enemy of scalability. This article focuses on one important case, namely mutable (wr… Multithreaded File I/O Multithreaded File I/O- So far multithreaded file I/O is a under-researched field. Although its simple to measure, there is not much common knowledge about it. The measurements pr… Measuring Parallel Performance: Optimizing a Concurrent Queue Measuring Parallel Performance: Optimizing a Concurrent Queue- Shows different ways of how to write a fast, internally synchronized queue, one that callers can use without any exp… Lock Options Lock Options- Presents a solution to races and deadlocks based on a well-known deadlock-avoidance protocol and shows how it can be enforced by the compiler. It can be applied to p… Understanding Parallel Performance Understanding Parallel Performance- Explains how to accurately analyze the real performance of parallel code and lists some basic considerations and common costs. What's New in Boost Threads? What's New in Boost Threads?- The Boost.Thread library, which enables the use of multiple threads of execution with shared data in portable C++ code, has undergone some major chan… Writing Lock-Free Code: A Corrected Queue Writing Lock-Free Code: A Corrected Queue- Explores lock-free code by focusing on creating a lock-free queue. The Many Faces of Deadlock The Many Faces of Deadlock- Explains that deadlock can happen whenever there is a blocking (or waiting) cycle among concurrent tasks. Maximize Locality, Minimize Contention Maximize Locality, Minimize Contention- Explains why in the concurrent world, locality is a first-order issue that trumps most other performance considerations. Now locality is no… volatile - Multithreaded Programmer's Best Friend volatile - Multithreaded Programmer's Best Friend- Discusses the usage of the volatile keyword in multithreaded C++ programs. Multi-threaded Debugging Techniques Multi-threaded Debugging Techniques- Describes a number of general purpose debugging techniques for multi-threaded applications. The Pillars of Concurrency The Pillars of Concurrency- This article makes the case that a consistent mental model is needed to talk about concurrency. Lock-free Interprocess Communication Lock-free Interprocess Communication- Interprocess communication is an essential component of modern software engineering. Often, lock-free IPC is accomplished via special process… Application-Level Abstractions for Lock-Free Data Sharing Application-Level Abstractions for Lock-Free Data Sharing- Describes lock-free data sharing, otherwise known as "wait-free data sharing" as an alternative to the use of locks. Use Lock Hierarchies to Avoid Deadlock Use Lock Hierarchies to Avoid Deadlock- Explains how to use lock hierarchies to avoid deadlock by assigning each shared resource a level that corresponds to its architectural laye… Apply Critical Sections Consistently Apply Critical Sections Consistently- Critical sections are the One True Tool for guaranteeing mutual exclusion on shared variables. Like most tools, these must be applied consist… Protothreads Protothreads- Very lightweight stackless threads; give linear code execution for event-driven systems, designed to use little memory; library is pure C, no platform-specific Assem… RT++ RT++- Higher order threads for C++; tutorial and reference manual. A Thread Performance Comparison A Thread Performance Comparison- Compares Windows NT and Solaris on a symmetric multiprocessor machine. Welcome to the Jungle Welcome to the Jungle- Herb Sutter is looking at how mainstream hardware is becoming permanently parallel, heterogeneous, and distributed. 1024cores 1024cores- A site devoted to lock-free algorithms, scalable architecture, multicore design patterns, parallel computations, threading libraries, tooling support and related topics. Software and the Concurrency Revolution Software and the Concurrency Revolution- Focuses on the implications of concurrency for software and its consequences for both programming languages and programmers. (Herb Sutter …