programmable
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 63
Paranormal 0.2.0
Paranormal is an extremely customizable (pseudo-programmable) audio visualization library. more>>
Paranormal is an extremely customizable (pseudo-programmable) audio visualization library, based (conceptually) on Winamps AVS plugin. Paranormals goal is to be as flexible as possible by providing a number of actuators that perform various tasks involved in generating an image.
These actuators can then be combined to create a nearly unlimited number of effects. These combinations can be saved to a file to be brought back later.
<<lessThese actuators can then be combined to create a nearly unlimited number of effects. These combinations can be saved to a file to be brought back later.
Download (0.15MB)
Added: 2006-04-18 License: LGPL (GNU Lesser General Public License) Price:
1284 downloads
Streamline 1.7.2
Streamline is a high-speed networking subsystem for commodity operating systems. more>>
Streamline is a high-speed networking subsystem for commodity operating systems. It increases performance by moving processing tasks to the fastest location. Streamline supports in-kernel execution, but also dedicated hardware (NICs) and even remote machines. An implementation of Streamline for Linux 2.6.13 and higher is made publicly available.
The goal of Streamline is to make fast network processing viable for common tasks. Many advanced processing schemes so far fail to make it into OSes, because they are difficult to combine with the socket(..) API or only applicable in a few situations. Our goal is to integrate known as well as develop new methods that replace sockets(..). without burdening application developers and end-users. Streamline achieves this by constructing a tailored dataplane for each application at runtime from an extensible set of functions.
Applications request information streams by specifying a series of abstract functions that need to be performed on incoming data (e.g., select tcp packets for port 80, reassemble into a stream, filter out known attacks). At runtime, streamline searches for implementations of these functions. These can be found in the kernel, in the application library, or in dedicated hardware such as programmable network cards or asymmetric multicores. When all functions are found, interconnecting datapaths are setup. Paths may need to cross the PCI bus, userspace/kernelspace barrier or even LANs. Optimisation of these paths is one of the factors that contributes to Streamlines performance.
The base system comes bundled with functions for pattern matching (Aho Corasick, RegEx), accounting, filtering (among others BPF), stream reassembly, rewriting, inspection, and more. Obvious uses are intrusion detection, network address translation, media streaming and realtime (pre)processing of scientific data.
Enhancements:
- This is mostly a stabilization release, which adds support for Linux kernels up to 2.6.22 and Fedora Core installations.
- The only truly new feature is a virtual filesystem interface (like sysfs) to streamline.
- With this "netmonfs" you can inspect live datastreams as if youre reading local files.
- Setting up streams and filters is easily accomplished through mkdir, open, and other well-known tools.
- Note that netmonfs is still beta quality software.
<<lessThe goal of Streamline is to make fast network processing viable for common tasks. Many advanced processing schemes so far fail to make it into OSes, because they are difficult to combine with the socket(..) API or only applicable in a few situations. Our goal is to integrate known as well as develop new methods that replace sockets(..). without burdening application developers and end-users. Streamline achieves this by constructing a tailored dataplane for each application at runtime from an extensible set of functions.
Applications request information streams by specifying a series of abstract functions that need to be performed on incoming data (e.g., select tcp packets for port 80, reassemble into a stream, filter out known attacks). At runtime, streamline searches for implementations of these functions. These can be found in the kernel, in the application library, or in dedicated hardware such as programmable network cards or asymmetric multicores. When all functions are found, interconnecting datapaths are setup. Paths may need to cross the PCI bus, userspace/kernelspace barrier or even LANs. Optimisation of these paths is one of the factors that contributes to Streamlines performance.
The base system comes bundled with functions for pattern matching (Aho Corasick, RegEx), accounting, filtering (among others BPF), stream reassembly, rewriting, inspection, and more. Obvious uses are intrusion detection, network address translation, media streaming and realtime (pre)processing of scientific data.
Enhancements:
- This is mostly a stabilization release, which adds support for Linux kernels up to 2.6.22 and Fedora Core installations.
- The only truly new feature is a virtual filesystem interface (like sysfs) to streamline.
- With this "netmonfs" you can inspect live datastreams as if youre reading local files.
- Setting up streams and filters is easily accomplished through mkdir, open, and other well-known tools.
- Note that netmonfs is still beta quality software.
Download (0.82MB)
Added: 2007-08-23 License: LGPL (GNU Lesser General Public License) Price:
809 downloads
Robotworld 0.1
Robotworld is a distributed world for programmable robots. more>>
Robot World aims to be a distributed physical environment inhabited by programmable robots, spanning across countless computers on the internet in true peer-to-peer fashion.
Robot World components:
- Parser / compiler compiles robot programs into byte code, stored in a .xml file
- Inject - send a robot program to the world
- RobotWorld - the world simulation program
- dsm - the bytecode disassembler
- rowo.y - language grammar file
parser
Compile a robot. Creates an .xml file from a .r file
$ parser sample.r
dsm
Disassembles a robot .xml file.
$ dsm sample.xml
robotworld
Testbed. Receiving server for "inject" - see below.
$ robotworld
inject
Send robot to world. "robotworld" must be running.
$ inject sample.xml
<<lessRobot World components:
- Parser / compiler compiles robot programs into byte code, stored in a .xml file
- Inject - send a robot program to the world
- RobotWorld - the world simulation program
- dsm - the bytecode disassembler
- rowo.y - language grammar file
parser
Compile a robot. Creates an .xml file from a .r file
$ parser sample.r
dsm
Disassembles a robot .xml file.
$ dsm sample.xml
robotworld
Testbed. Receiving server for "inject" - see below.
$ robotworld
inject
Send robot to world. "robotworld" must be running.
$ inject sample.xml
Download (0.023MB)
Added: 2005-04-18 License: GPL (GNU General Public License) Price:
1650 downloads
PSIworld 0.1.1
PSIworld provides a set of libraries, utilities and applications in order to ease the implementation of dynamic AI. more>>
PSIworld stands for Programmable Scalable Interactive World. This framework provides a set of libraries, utilities and applications in order to ease the implementation of dynamic Artificial Intelligence environments. Specifically, the development of Multi-Agent applications is targeted.
This project is designed in a generic manner, so that various kinds of applications can use and take advantage of the services provided by ProjectPSI. Primarily developed under GNU/Linux using various OpenSource tools, ProjectPSI modules are released under GNU GPL and LGPL licenses. This framework does not only include pure algorithm libraries for AI computation tasks, but also a C/C++ library for distributed computation. A server-client model also involves various, concurrent visualization methods of distinct Agents or Societies.
<<lessThis project is designed in a generic manner, so that various kinds of applications can use and take advantage of the services provided by ProjectPSI. Primarily developed under GNU/Linux using various OpenSource tools, ProjectPSI modules are released under GNU GPL and LGPL licenses. This framework does not only include pure algorithm libraries for AI computation tasks, but also a C/C++ library for distributed computation. A server-client model also involves various, concurrent visualization methods of distinct Agents or Societies.
Download (0.59MB)
Added: 2007-05-17 License: GPL (GNU General Public License) Price:
890 downloads
JGraphpad 5.6.3
JGraphpad is a diagram editor. more>>
JGraphpad is a powerful, free diagram editor based on JGraph. It is currently available in English, French and German. With JGraphpad, you can create flow charts, maps, UML diagrams, and many other diagrams.
JGraphpad is provided as an example for the JGraph Swing component. Check out the JGraphpad applet and Web Start version.
JGraphpad is a versatile product that may be used to display and edit any type of diagram in the following fields:
- Knowledge Visualization
- Business Diagramming
- Software Engineering
- Monitoring and Configuration
- Transport Networks
- Workflow Systems
Main features:
- Supported Languages: English, French, German, Spanish, Japanese, Indonesian, Thai, Portuguese
- Flexible configuration, enable/disable features, toolbar buttons, add custom commands
- Programmable toolbar, GUI, and features (create your own toolbar buttons)
- Supports a wide range of platforms (Windows, Linux, Mac, Solaris)
- Copy and paste or drag and drop to and from Java and native applications
- Import/Export Text files, GXL, GIF, JPG, PNG, EPS, HTML Image maps, and GraphViz Dot
- Object library with flexible creation and management
- Shortest path and "spanning tree" selection
- 8 Different Automatic layouts
- Overview with Panning and Zoom
- Command History
- Printing and much more...
Enhancements:
- The release now compiles with JGraph 5.6.3, changing the use of graph references in various renderers.
- Some unused code was removed and various Javadocs were cleaned up.
<<lessJGraphpad is provided as an example for the JGraph Swing component. Check out the JGraphpad applet and Web Start version.
JGraphpad is a versatile product that may be used to display and edit any type of diagram in the following fields:
- Knowledge Visualization
- Business Diagramming
- Software Engineering
- Monitoring and Configuration
- Transport Networks
- Workflow Systems
Main features:
- Supported Languages: English, French, German, Spanish, Japanese, Indonesian, Thai, Portuguese
- Flexible configuration, enable/disable features, toolbar buttons, add custom commands
- Programmable toolbar, GUI, and features (create your own toolbar buttons)
- Supports a wide range of platforms (Windows, Linux, Mac, Solaris)
- Copy and paste or drag and drop to and from Java and native applications
- Import/Export Text files, GXL, GIF, JPG, PNG, EPS, HTML Image maps, and GraphViz Dot
- Object library with flexible creation and management
- Shortest path and "spanning tree" selection
- 8 Different Automatic layouts
- Overview with Panning and Zoom
- Command History
- Printing and much more...
Enhancements:
- The release now compiles with JGraph 5.6.3, changing the use of graph references in various renderers.
- Some unused code was removed and various Javadocs were cleaned up.
Download (1.7MB)
Added: 2005-08-09 License: GPL (GNU General Public License) Price:
2745 downloads
Performance Application Programming Interface 3.9.0
Performance Application Programming Interface is an API for a CPU performance counter. more>>
PAPI aims to provide the tool designer and application engineer with a consistent interface and methodology for use of the performance counter hardware found in most major microprocessors.
PAPI enables software engineers to see, in near real time, the relation between software performance and processor events.
The Performance API (PAPI) project specifies a standard application programming interface (API) for accessing hardware performance counters available on most modern microprocessors.
These counters exist as a small set of registers that count Events, occurrences of specific signals related to the processors function. Monitoring these events facilitates correlation between the structure of source/object code and the efficiency of the mapping of that code to the underlying architecture.
This correlation has a variety of uses in performance analysis including hand tuning, compiler optimization, debugging, benchmarking, monitoring and performance modeling. In addition, it is hoped that this information will prove useful in the development of new compilation technology as well as in steering architectural development towards alleviating commonly occurring bottlenecks in high performance computing.
PAPI provides two interfaces to the underlying counter hardware; a simple, high level interface for the acquisition of simple measurements and a fully programmable, low level interface directed towards users with more sophisticated needs.
The low level PAPI interface deals with hardware events in groups called EventSets. EventSets reflect how the counters are most frequently used, such as taking simultaneous measurements of different hardware events and relating them to one another.
For example, relating cycles to memory references or flops to level 1 cache misses can indicate poor locality and memory management. In addition, EventSets allow a highly efficient implementation which translates to more detailed and accurate measurements.
EventSets are fully programmable and have features such as guaranteed thread safety, writing of counter values, multiplexing and notification on threshold crossing, as well as processor specific features. The high level interface simply provides the ability to start, stop and read specific events, one at a time.
PAPI provides portability across different platforms. It uses the same routines with similar argument lists to control and access the counters for every architecture. As part of PAPI, we have predefined a set of events that we feel represents the lowest common denominator of every good counter implementation.
Our intent is that the same source code will count similar and possibly comparable events when run on different platforms. If the programmer chooses to use this set of standardized events, then the source code need not be changed and only a fresh compilation and link is necessary. However, should the developer wish to access machine specific events, the low level API provides access to all available events and counting modes.
If an event or feature does not exist on the current platform, PAPI returns an appropriate error code. This significantly reduces the porting effort of code using PAPI because the semantics of each call to PAPI remains the same, just the argument lists need updating. In addition to the standard set, each PAPI implementation supports all native events through the ability to directly accept platform specific counter numbers. Definitions for most, if not all of these, are included as conditional macros in the header file. In this way, PAPI avoids having inefficient code to translate all events for all platforms into a uniform representation and back again.
This translation is only done for the relatively few events defined in the standardized set. Some processors like those in the POWER series have counter groups. They enable access to specific groups of counters, instead of individual events. This presents a serious portability problem, thus PAPI abstracts hardware counters from their groups with a packed naming scheme. Each counter control value or event is made up of the counter group number and the number of the specific counter in that group.
PAPI can be divided into two layers of software. The upper layer consists of the API and machine independent support functions. The lower layer defines and exports a machine independent interface to machine dependent functions and data structures. These functions access the substrate, which may consist of the operating system, a kernel extension or assembly functions to directly access the processors registers.
PAPI tries to use the most efficient and flexible of the three, depending on what is available. Naturally, the functionality of the upper layers heavily depends on that provided by the substrate. In cases where the substrates do not provide highly desirable features, PAPI attempts to emulate them as described below.
PAPI makes sure the underlying operating system or library guards against overflow of counter values.
Each counter can potentially be incremented multiple times in a single clock cycle. This combined with increasing clock speeds and the small precision of some of the physical counters means that overflow is likely to occur.
One of the more advanced features of PAPI is to provide a portable implementation of asynchronous notification when counters exceed a user specified value.
This functionality provides the basis for PAPIs SVR4 compatible profiling calls, that generate an accurate histogram of performance interrupts based on hardware metrics, not on time. Such functionality provides the basis for all line level performance analysis software, from the antiquated days of AT&Ts prof to SGIs SpeedShop. Thus for any architecture with even the most rudimentary access to hardware performance counters, PAPI provides the foundation for a truly portable, source level, performance analysis tool based on real processor statistics.
Enhancements:
- The API was extended to decouple abstraction layers from hardware support and to provide initial support for different types of performance counters.
<<lessPAPI enables software engineers to see, in near real time, the relation between software performance and processor events.
The Performance API (PAPI) project specifies a standard application programming interface (API) for accessing hardware performance counters available on most modern microprocessors.
These counters exist as a small set of registers that count Events, occurrences of specific signals related to the processors function. Monitoring these events facilitates correlation between the structure of source/object code and the efficiency of the mapping of that code to the underlying architecture.
This correlation has a variety of uses in performance analysis including hand tuning, compiler optimization, debugging, benchmarking, monitoring and performance modeling. In addition, it is hoped that this information will prove useful in the development of new compilation technology as well as in steering architectural development towards alleviating commonly occurring bottlenecks in high performance computing.
PAPI provides two interfaces to the underlying counter hardware; a simple, high level interface for the acquisition of simple measurements and a fully programmable, low level interface directed towards users with more sophisticated needs.
The low level PAPI interface deals with hardware events in groups called EventSets. EventSets reflect how the counters are most frequently used, such as taking simultaneous measurements of different hardware events and relating them to one another.
For example, relating cycles to memory references or flops to level 1 cache misses can indicate poor locality and memory management. In addition, EventSets allow a highly efficient implementation which translates to more detailed and accurate measurements.
EventSets are fully programmable and have features such as guaranteed thread safety, writing of counter values, multiplexing and notification on threshold crossing, as well as processor specific features. The high level interface simply provides the ability to start, stop and read specific events, one at a time.
PAPI provides portability across different platforms. It uses the same routines with similar argument lists to control and access the counters for every architecture. As part of PAPI, we have predefined a set of events that we feel represents the lowest common denominator of every good counter implementation.
Our intent is that the same source code will count similar and possibly comparable events when run on different platforms. If the programmer chooses to use this set of standardized events, then the source code need not be changed and only a fresh compilation and link is necessary. However, should the developer wish to access machine specific events, the low level API provides access to all available events and counting modes.
If an event or feature does not exist on the current platform, PAPI returns an appropriate error code. This significantly reduces the porting effort of code using PAPI because the semantics of each call to PAPI remains the same, just the argument lists need updating. In addition to the standard set, each PAPI implementation supports all native events through the ability to directly accept platform specific counter numbers. Definitions for most, if not all of these, are included as conditional macros in the header file. In this way, PAPI avoids having inefficient code to translate all events for all platforms into a uniform representation and back again.
This translation is only done for the relatively few events defined in the standardized set. Some processors like those in the POWER series have counter groups. They enable access to specific groups of counters, instead of individual events. This presents a serious portability problem, thus PAPI abstracts hardware counters from their groups with a packed naming scheme. Each counter control value or event is made up of the counter group number and the number of the specific counter in that group.
PAPI can be divided into two layers of software. The upper layer consists of the API and machine independent support functions. The lower layer defines and exports a machine independent interface to machine dependent functions and data structures. These functions access the substrate, which may consist of the operating system, a kernel extension or assembly functions to directly access the processors registers.
PAPI tries to use the most efficient and flexible of the three, depending on what is available. Naturally, the functionality of the upper layers heavily depends on that provided by the substrate. In cases where the substrates do not provide highly desirable features, PAPI attempts to emulate them as described below.
PAPI makes sure the underlying operating system or library guards against overflow of counter values.
Each counter can potentially be incremented multiple times in a single clock cycle. This combined with increasing clock speeds and the small precision of some of the physical counters means that overflow is likely to occur.
One of the more advanced features of PAPI is to provide a portable implementation of asynchronous notification when counters exceed a user specified value.
This functionality provides the basis for PAPIs SVR4 compatible profiling calls, that generate an accurate histogram of performance interrupts based on hardware metrics, not on time. Such functionality provides the basis for all line level performance analysis software, from the antiquated days of AT&Ts prof to SGIs SpeedShop. Thus for any architecture with even the most rudimentary access to hardware performance counters, PAPI provides the foundation for a truly portable, source level, performance analysis tool based on real processor statistics.
Enhancements:
- The API was extended to decouple abstraction layers from hardware support and to provide initial support for different types of performance counters.
Download (2.9MB)
Added: 2007-04-23 License: BSD License Price:
925 downloads
pacgen 1.0
PacGen is an Ethernet IP TCP/UDP packet generating tool for Linux. more>>
PacGen is an Ethernet IP TCP/UDP packet generating tool for Linux. Experimental ARP generation is included. Experimental ARP generation is included. This tool enables custom packets with configurable Ethernet, IP, TCP, and UDP layers as well as custom payloads. As an added feature there are configurations for packet count and a programmable time interval between packet sends. Plaintext config files control all the functions and represent all layers used to build packets. Included in the archive is the source code and a recompiled binary along with example configs.
Since I didnt write a smart interface routine, pacgen will only work with eth0. If you need to use a different interface the source code is pretty obvious on where this would be changed.
<<lessSince I didnt write a smart interface routine, pacgen will only work with eth0. If you need to use a different interface the source code is pretty obvious on where this would be changed.
Download (0.023MB)
Added: 2006-07-04 License: GPL (GNU General Public License) Price:
1211 downloads
Heroes 0.21
Heroes project is a Nibbles-like game, just better. more>>
Heroes project is a Nibbles-like game, just better.
Heroes is similar to the "Tron" and "Nibbles" games of yore, but includes many graphical improvements and new game features.
In it, you must maneuver a small vehicle around a world and collect powerups while avoiding obstacles, your opponents trails, and even your own trail.
There are five game modes available. Quest is the classical Nibbles, in Death Match you start with very long tails and must kill your opponents, in Killem All you must run over lemmings moving on the ground, in Time Cash or Color modes you must collect money or pyramids of color. Heroes features 12 original sound tracks, 94 levels (in 10 different tile sets) plus a level editor.
Heroes source code (distributed under the GNU General Public Licence version 2) originates from an original MS-DOS game but has been heavily modified to enhance the portability. Some new features have been added and MS-DOS support has been lost by the meantime. The original MS-DOS version can still be found on the Internet but is unmaintained and should be considered obsolete.
The current development concentrates on cleaning the code and porting the game to the various operating systems available. Our objective is to release the version 1.0 as a clean and portable base that would allow significant additions such as network support or programmable vehicles.
Enhancements:
- Support for the heroes-hq-sound-tracks package.
Bug fixes:
- soundconf: failed to override aliases.
- Heroes GGI driver failed to report an error if no two-frame mode was available.
- Various code nits.
<<lessHeroes is similar to the "Tron" and "Nibbles" games of yore, but includes many graphical improvements and new game features.
In it, you must maneuver a small vehicle around a world and collect powerups while avoiding obstacles, your opponents trails, and even your own trail.
There are five game modes available. Quest is the classical Nibbles, in Death Match you start with very long tails and must kill your opponents, in Killem All you must run over lemmings moving on the ground, in Time Cash or Color modes you must collect money or pyramids of color. Heroes features 12 original sound tracks, 94 levels (in 10 different tile sets) plus a level editor.
Heroes source code (distributed under the GNU General Public Licence version 2) originates from an original MS-DOS game but has been heavily modified to enhance the portability. Some new features have been added and MS-DOS support has been lost by the meantime. The original MS-DOS version can still be found on the Internet but is unmaintained and should be considered obsolete.
The current development concentrates on cleaning the code and porting the game to the various operating systems available. Our objective is to release the version 1.0 as a clean and portable base that would allow significant additions such as network support or programmable vehicles.
Enhancements:
- Support for the heroes-hq-sound-tracks package.
Bug fixes:
- soundconf: failed to override aliases.
- Heroes GGI driver failed to report an error if no two-frame mode was available.
- Various code nits.
Download (MB)
Added: 2006-12-05 License: GPL (GNU General Public License) Price:
1058 downloads
Virgil B-03
Virgil is an new, light-weight object-oriented programming language. more>>
Virgil projetc is an new, object-oriented, light-weight programming language that is designed for building software for resource-constrained embedded systems at the lowest level. Microcontroller programmers can now develop complete software systems, including hardware drivers and OS services, in one language, without the need to resort to unsafe libraries or native code.
Virgil also provides a whole-program compiler system that applies novel global optimization techniques to produce efficient machine code that runs directly on the hardware, without the need of a virtual machine or a language runtime system.
Why are microcontrollers important?
Embedded computers are everywhere. While the desktop computer revolution has brought computing to millions of users worldwide, the embedded system revolution has been quietly automating the world we live in--everything from the cars we drive to the roadways we drive them on; from factory production to the goods we use every day. In 2005, nearly 6 billion microcontroller units were manufactured. Today, microcontrollers outnumber people on this planet by more than 5 to 1. Soon, most electronic devices will have a software-programmable embedded computer with capabilities ranging from simple arithmetic to wireless communication, and microcontrollers offer a compelling solution for many of these products.
How is software for embedded systems different?
Software in this environment has very different requirements than traditional desktop and server computers. First, embedded programs must control devices that sense and interact with the physical world, in contrast to desktop and server software that is driven by databases, websites, and input from users. Second, embedded systems often operate in safety critical real-time scenarios, where software is tasked with controlling physical processes and actuators that can pose physical danger to people, infrastructure, and the environment. Third, the cost of software update for billions of devices makes it largely infeasible, vastly increasing the importance of software verification.
How can new language technology help?
Advances in programming languages over the past 30 years have yielded demonstrable productivity gains, including better static checking, more expressiveness, and better portability and maintability. Yet these advances have not been put into practical use in developing embedded systems software. The continued use of unsafe, low-level languages that frustrate automated program reasoning and verification poses a significant stumbling block to progress. While no magic bullet exists for software development, we believe that applying modern technology to this problem will produce real, tangible gains in both software quality and efficiency.
Main features:
Object-oriented Features
- Classes and single-inheritance
- Virtual methods
- Constructors
- Orphan classes
- Always pass by reference
Procedural Features
- Components
- Loops
- Switches
- Statements
Functional Features
- Delegates
- Aggressive inlining *
- Tail call optimization *
Other
- Arrays
- Bit-level types
- Compile-time Application Initialization
- Hardware register access
- Interrupt handlers
- Well-defined language semantics
- Heap optimization
- Exceptions *
- = the implementation of this feature is not yet complete in prototype compiler
<<lessVirgil also provides a whole-program compiler system that applies novel global optimization techniques to produce efficient machine code that runs directly on the hardware, without the need of a virtual machine or a language runtime system.
Why are microcontrollers important?
Embedded computers are everywhere. While the desktop computer revolution has brought computing to millions of users worldwide, the embedded system revolution has been quietly automating the world we live in--everything from the cars we drive to the roadways we drive them on; from factory production to the goods we use every day. In 2005, nearly 6 billion microcontroller units were manufactured. Today, microcontrollers outnumber people on this planet by more than 5 to 1. Soon, most electronic devices will have a software-programmable embedded computer with capabilities ranging from simple arithmetic to wireless communication, and microcontrollers offer a compelling solution for many of these products.
How is software for embedded systems different?
Software in this environment has very different requirements than traditional desktop and server computers. First, embedded programs must control devices that sense and interact with the physical world, in contrast to desktop and server software that is driven by databases, websites, and input from users. Second, embedded systems often operate in safety critical real-time scenarios, where software is tasked with controlling physical processes and actuators that can pose physical danger to people, infrastructure, and the environment. Third, the cost of software update for billions of devices makes it largely infeasible, vastly increasing the importance of software verification.
How can new language technology help?
Advances in programming languages over the past 30 years have yielded demonstrable productivity gains, including better static checking, more expressiveness, and better portability and maintability. Yet these advances have not been put into practical use in developing embedded systems software. The continued use of unsafe, low-level languages that frustrate automated program reasoning and verification poses a significant stumbling block to progress. While no magic bullet exists for software development, we believe that applying modern technology to this problem will produce real, tangible gains in both software quality and efficiency.
Main features:
Object-oriented Features
- Classes and single-inheritance
- Virtual methods
- Constructors
- Orphan classes
- Always pass by reference
Procedural Features
- Components
- Loops
- Switches
- Statements
Functional Features
- Delegates
- Aggressive inlining *
- Tail call optimization *
Other
- Arrays
- Bit-level types
- Compile-time Application Initialization
- Hardware register access
- Interrupt handlers
- Well-defined language semantics
- Heap optimization
- Exceptions *
- = the implementation of this feature is not yet complete in prototype compiler
Download (0.57MB)
Added: 2007-05-14 License: BSD License Price:
894 downloads
Alice ML 1.3
Alice ML is a functional, concurrent, distributed programming language based on Standard ML. more>>
Alice is a functional programming language based on Standard ML, extended with rich support for concurrent, distributed, and constraint programming.
Main features:
- Futures: laziness and light-weight concurrency with data-flow synchronisation
- Higher-order modules: higher-order functors and abstract signatures
- Packages: integrating static with dynamic typing and first class modules
- Pickling: higher-order type-safe, generic & platform-independent persistence
- Components: platform-independence and type-safe dynamic loading of modules
- Distribution: type-safe cross-platform remote functions and network mobility
- Constraints: solving combinatorical problems using constraint propagation and programmable search
The Alice System is a rich open-source programming system featuring the following tools:
- Virtual machine: a portable VM with support for just-in-time compilation
- Interactive system: an interpreter-like interactive toplevel
- Batch compiler: separate compilation
- Static linker: type-safe bundling of components
- Inspector: a tool for interactively inspecting data structures
- Explorer: a tool for interactively investigating search problems
- Gtk+: a binding for the Gnome toolkit GUI library
- SQL: a library for accessing SQL databases
- XML: a simple library for parsing XML documents
Enhancements:
- Alice now incorporates some of the proposed extensions for Successor ML.
- The bytecode jitter is now the default execution unit.
- The documentation includes a constraint programming tutorial, and the constraint library now uses the current stable version of Gecode.
<<lessMain features:
- Futures: laziness and light-weight concurrency with data-flow synchronisation
- Higher-order modules: higher-order functors and abstract signatures
- Packages: integrating static with dynamic typing and first class modules
- Pickling: higher-order type-safe, generic & platform-independent persistence
- Components: platform-independence and type-safe dynamic loading of modules
- Distribution: type-safe cross-platform remote functions and network mobility
- Constraints: solving combinatorical problems using constraint propagation and programmable search
The Alice System is a rich open-source programming system featuring the following tools:
- Virtual machine: a portable VM with support for just-in-time compilation
- Interactive system: an interpreter-like interactive toplevel
- Batch compiler: separate compilation
- Static linker: type-safe bundling of components
- Inspector: a tool for interactively inspecting data structures
- Explorer: a tool for interactively investigating search problems
- Gtk+: a binding for the Gnome toolkit GUI library
- SQL: a library for accessing SQL databases
- XML: a simple library for parsing XML documents
Enhancements:
- Alice now incorporates some of the proposed extensions for Successor ML.
- The bytecode jitter is now the default execution unit.
- The documentation includes a constraint programming tutorial, and the constraint library now uses the current stable version of Gecode.
Download (0.28MB)
Added: 2006-09-18 License: BSD License Price:
1133 downloads
Gnaural 0.4.20070301
Gnaural is a multi-platform programmable binaural-beat generator. more>>
Gnaural is a multi-platform programmable binaural-beat generator, implementing the principles described in October 1973 Scientific American, Gerald Oster, "Auditory Beats in the Brain."
There has been considerable research done on the subject since that publication, and Gnaurals Windows-based predecessor, WinAural, has been used as the audio stimulus in at least one published study, "The Induced Rhythmic Oscillations of Neural Activity in the Human Brain", D. Cvetkovic, D. Djuwari, I. Cosic (Australia), from Proceeding (417) Biomedical Engineering - 2004.
The central finding of Osters article: brain activity can be entrained to the auditory beat frequencies created when each ear is presented simultaneously with tones of slightly offset in frequency. My interest has been exploring how this effect (known as "frequency following response" or "brainwave entrainment") can be used to explore mental states, ranging from profoundly meditative to highly alert.
What are auditory binaural beats?
In 1839, German experimenter Heinrich Wilhelm Dove discovered that playing two tones simultaneously, one in to each ear, induced the perception of a "beat frequency" when the tones were of slightly differing frequency (generally less than 100 Hz apart).
While an acoustic mixing of the two tones will also produce a beat frequency, what is notable about auditory binaural beats is that there is no acoustic mixing of the tones: the beats exist solely within the auditory system. Some researchers believe that they are an artifact of the "neural wiring" used to spatially determine the origins of sounds in our environment.
Gerald Osters breakthrough in 1973 was to observe that the neural processing associated with binaural beats can induce an overall entrainment of brainwave activity (essentially, an oscillation between the two hemispheres in sync with the beat frequency). The neurology of this phenomenon is, according to Oster, tied to the contralateral integration of auditory input taking place in the superior olivary nucleus in the brainstem.
My main interest in the principle has been the possibility that brainwave entrainment can be used to target specific mental states. Gnaural has a long lineage, starting with a DOS program in the mid 1990s, progressing to WinAural for Windows and (in the hope a making a cross-platform solution) BrainJav for Java, and finally the truly cross-platform solution in Gnaural. In over a decade of experience with the technique, I have mainly found it useful for slowing-down brain activity. In that capacity, it has served me in areas ranging from stress reduction, sleep make-up, and particularly as a sort of "poor mans meditation", requiring almost no effort to achieve states of mind that I usually have found rather hard to achieve with real meditation.
But these are strictly my observations, and I make no guarantees about what the technique can do for anyone else. Some of the more unusual applications Ive heard about for my software include sustaining a heightened mental focus for online tournament gaming, and enhancing flotation-tank and related sensory deprivation environments. Many people also apparently use the technique to study more effectively.
One of the stranger facts regarding binaural beats is their seeming ability to be equally-at-home in the laboratory setting as in "grass roots" contexts (such as alternative medicine and the New Age phenomenon). That there is a grass-roots enthusiasm (easily demonstrated by googling binaural beats) is probably related to the sense of promise inherent in an easy-to-implement technique offering the possibility of direct influence of brain behavior. But from a scientific standpoint, there is a big gap between claims (of what binaural beats can do) and corroboration (by scientific method), which has led to a sense in many that the actual subject of binaural beats is "controversial." But this is an irrational response, given that the actual scientific/laboratory basis of binaural beats has remained an established part of the scientific literature for over 30 years.
One of my goals in writing Gnaural was to implement the binaural beat principle within the bounds of my understanding of the established scientific facts regarding the subject. To some extent, this has meant leaving-out many of the "bells and whistles" prevailent in other implementations. That my software has been used for at least one published "hard-science" study suggests that it has been somewhat successful. However, I also hope that Gnaural proves useful for people who wish to explore subjective areas unfettered by scientific rigor. In a subject dealing with matters of the mind, I see both sides -- "grass-roots empiricism" and "scientific empiricism" -- as being complementary halves of a complete investigation of the possibilities, and ultimately, Id hope to see the two sides of our culture be catalysts for each other, rather than inhibited by a mutual antagonism.
<<lessThere has been considerable research done on the subject since that publication, and Gnaurals Windows-based predecessor, WinAural, has been used as the audio stimulus in at least one published study, "The Induced Rhythmic Oscillations of Neural Activity in the Human Brain", D. Cvetkovic, D. Djuwari, I. Cosic (Australia), from Proceeding (417) Biomedical Engineering - 2004.
The central finding of Osters article: brain activity can be entrained to the auditory beat frequencies created when each ear is presented simultaneously with tones of slightly offset in frequency. My interest has been exploring how this effect (known as "frequency following response" or "brainwave entrainment") can be used to explore mental states, ranging from profoundly meditative to highly alert.
What are auditory binaural beats?
In 1839, German experimenter Heinrich Wilhelm Dove discovered that playing two tones simultaneously, one in to each ear, induced the perception of a "beat frequency" when the tones were of slightly differing frequency (generally less than 100 Hz apart).
While an acoustic mixing of the two tones will also produce a beat frequency, what is notable about auditory binaural beats is that there is no acoustic mixing of the tones: the beats exist solely within the auditory system. Some researchers believe that they are an artifact of the "neural wiring" used to spatially determine the origins of sounds in our environment.
Gerald Osters breakthrough in 1973 was to observe that the neural processing associated with binaural beats can induce an overall entrainment of brainwave activity (essentially, an oscillation between the two hemispheres in sync with the beat frequency). The neurology of this phenomenon is, according to Oster, tied to the contralateral integration of auditory input taking place in the superior olivary nucleus in the brainstem.
My main interest in the principle has been the possibility that brainwave entrainment can be used to target specific mental states. Gnaural has a long lineage, starting with a DOS program in the mid 1990s, progressing to WinAural for Windows and (in the hope a making a cross-platform solution) BrainJav for Java, and finally the truly cross-platform solution in Gnaural. In over a decade of experience with the technique, I have mainly found it useful for slowing-down brain activity. In that capacity, it has served me in areas ranging from stress reduction, sleep make-up, and particularly as a sort of "poor mans meditation", requiring almost no effort to achieve states of mind that I usually have found rather hard to achieve with real meditation.
But these are strictly my observations, and I make no guarantees about what the technique can do for anyone else. Some of the more unusual applications Ive heard about for my software include sustaining a heightened mental focus for online tournament gaming, and enhancing flotation-tank and related sensory deprivation environments. Many people also apparently use the technique to study more effectively.
One of the stranger facts regarding binaural beats is their seeming ability to be equally-at-home in the laboratory setting as in "grass roots" contexts (such as alternative medicine and the New Age phenomenon). That there is a grass-roots enthusiasm (easily demonstrated by googling binaural beats) is probably related to the sense of promise inherent in an easy-to-implement technique offering the possibility of direct influence of brain behavior. But from a scientific standpoint, there is a big gap between claims (of what binaural beats can do) and corroboration (by scientific method), which has led to a sense in many that the actual subject of binaural beats is "controversial." But this is an irrational response, given that the actual scientific/laboratory basis of binaural beats has remained an established part of the scientific literature for over 30 years.
One of my goals in writing Gnaural was to implement the binaural beat principle within the bounds of my understanding of the established scientific facts regarding the subject. To some extent, this has meant leaving-out many of the "bells and whistles" prevailent in other implementations. That my software has been used for at least one published "hard-science" study suggests that it has been somewhat successful. However, I also hope that Gnaural proves useful for people who wish to explore subjective areas unfettered by scientific rigor. In a subject dealing with matters of the mind, I see both sides -- "grass-roots empiricism" and "scientific empiricism" -- as being complementary halves of a complete investigation of the possibilities, and ultimately, Id hope to see the two sides of our culture be catalysts for each other, rather than inhibited by a mutual antagonism.
Download (0.12MB)
Added: 2007-04-25 License: GPL (GNU General Public License) Price:
922 downloads
CIP/Ethernet Library for Linux 0.0.7e
CIP/Ethernet Library for Linux is the worlds premiere Linux-based software library for communicating with ControlLogix. more>>
CIP/Ethernet Library for Linux is the worlds premiere Linux-based software library for communicating with Allen Bradley ControlLogix Programmable Logic Controllers.
I have successfully completed negotiations with LSN of Birmingham Alabama to transfer the complete ownership of all things CELL related to them.
My motivations here are quite simple. I havent worked directly with a ControlLogix in the past 3 years as I am no longer in the Machine Tool industry at all. In fact, I seriously doubt that I will ever return to the machine tool industry - an industry not exactly known for its stability here in Michigan of late.
Anyhow, about LSN: they make cost-effective data logging / data historian products for a variety of platforms including Linux and Windows. They also use the CELL platform for their Allen Bradley based products. They have retained my services for continued support of the CELL library for the time being so there will be some continuity.
What I cant tell you is if any newer versions of the CELL library will remain under the GNU LGPL license. Obviously, any previously released version of CELL that was under the LGPL will remain under the LGPL - nothing can or will change that.
Versions going forward will be licensed at the sole discretion of LNS - not me.
I will shortly post a link to LNSs website page for CELL. They are the SOLE contact for ANY/ALL support needs for CELL.
<<lessI have successfully completed negotiations with LSN of Birmingham Alabama to transfer the complete ownership of all things CELL related to them.
My motivations here are quite simple. I havent worked directly with a ControlLogix in the past 3 years as I am no longer in the Machine Tool industry at all. In fact, I seriously doubt that I will ever return to the machine tool industry - an industry not exactly known for its stability here in Michigan of late.
Anyhow, about LSN: they make cost-effective data logging / data historian products for a variety of platforms including Linux and Windows. They also use the CELL platform for their Allen Bradley based products. They have retained my services for continued support of the CELL library for the time being so there will be some continuity.
What I cant tell you is if any newer versions of the CELL library will remain under the GNU LGPL license. Obviously, any previously released version of CELL that was under the LGPL will remain under the LGPL - nothing can or will change that.
Versions going forward will be licensed at the sole discretion of LNS - not me.
I will shortly post a link to LNSs website page for CELL. They are the SOLE contact for ANY/ALL support needs for CELL.
Download (0.10MB)
Added: 2006-02-24 License: LGPL (GNU Lesser General Public License) Price:
1385 downloads
Gnaural for Linux 1.0
a multi-platform programmable binaural-beat generator more>> Gnaural is a multi-platform programmable binaural-beat generator, implementing the principle of binaural beats as described in the October 1973 Scientific American article "Auditory Beats in the Brain" (Gerald Oster). There has been considerable research done on the subject since that publication, and WinAural (an early version in the Gnaural lineage) was used as the audio stimulus for at least one published study
The central theme of Osters article is that processesing of auditory binaural beats bears distinct differences from that done for normal sound, emphasizing different neural pathways and highlighting different parameters of the sound stimulus.
Osters observations inspired a wave of research in to the ways in which binaural beats could affect the brain. One area of research explored how binaural beats could evoke a "frequency-following response" (also known as "brainwave entrainment") in EEG measures. My personal interest in binaural beats has centered almost exclusively around exploring this entrainment potential as a means of facilitating meditative states. However, Gnaural was designed to be neutral with regard to any hypothesis or application, relying strictly on the fundamental findings as described in Osters 1973 overview.<<less
Download (84KB)
Added: 2009-04-26 License: Freeware Price: Free
188 downloads
APLoader 0.1.0
APLoader stands for Another Postgres Loader, is a front-end to the Postgresql COPY command written in Ruby. more>>
APLoader stands for Another Postgres Loader, is a front-end to the Postgresql COPY command written in Ruby.
Features include:
fault tolerance
a progress meter
failed batch logs
minimal requirements
a programmable API
excellent performance.
The APLoaderproject is a PostgreSQL Community project that is a part of the pgFoundry.
<<lessFeatures include:
fault tolerance
a progress meter
failed batch logs
minimal requirements
a programmable API
excellent performance.
The APLoaderproject is a PostgreSQL Community project that is a part of the pgFoundry.
Download (0.015MB)
Added: 2006-10-30 License: BSD License Price:
1092 downloads
Nonpareil 0.78
Nonpareil is a calculator microassembler and simulator. more>>
Nonpareil is a microassembler and simulator package for the calculators. It currently supports the HP Classic and Woodstock series. Nonpareil is written in C and uses the GTK+ toolkit.
The Classic series of HP handheld calculators included the following models:
- HP-35 Scientific (Electronic Slide Rule)
- HP-80 Financial
- HP-45 Advanced Scientific
- HP-65 Card Programmable Scientific
- HP-70 Business
- HP-55 Programmable Scientific
The HP-67 is considered by many people to be part of the Classic series since it is packaged similarly to the HP-65, but electrically it is really a Woodstock series machine.
The classic series chip set was also used in the HP-46 and HP-81, which were desktop printing versions of the HP-45 and HP-80, respectively, and the HP 9805A desktop calculator. The same chip set was also used in the HP 1722A Oscilliscope, the HP 3380A Integrator (for Gas Chromatography), and in several HP Gas Chromatographs.
The Woodstock series of HP handheld calculators included the following models:
- HP-21 Scientific
- HP-22 Financial
- HP-25 Programmable Scientific
- HP-25C Programmable Scientific with continuous memory
- HP-27 Scientific and Financial
- HP-29C Programmable Scientific with continuous memory
The code name "Woodstock" referred both to the Woodstock series of calculators, and to the processor architecture use in them. The same processor architecture was also used in the Topcat, Sting, and Spice series, and the HP-67.
Enhancements:
- Build problems that occurred with certain versions of Bison were fixed.
- The need for an X server during the build process was eliminated.
<<lessThe Classic series of HP handheld calculators included the following models:
- HP-35 Scientific (Electronic Slide Rule)
- HP-80 Financial
- HP-45 Advanced Scientific
- HP-65 Card Programmable Scientific
- HP-70 Business
- HP-55 Programmable Scientific
The HP-67 is considered by many people to be part of the Classic series since it is packaged similarly to the HP-65, but electrically it is really a Woodstock series machine.
The classic series chip set was also used in the HP-46 and HP-81, which were desktop printing versions of the HP-45 and HP-80, respectively, and the HP 9805A desktop calculator. The same chip set was also used in the HP 1722A Oscilliscope, the HP 3380A Integrator (for Gas Chromatography), and in several HP Gas Chromatographs.
The Woodstock series of HP handheld calculators included the following models:
- HP-21 Scientific
- HP-22 Financial
- HP-25 Programmable Scientific
- HP-25C Programmable Scientific with continuous memory
- HP-27 Scientific and Financial
- HP-29C Programmable Scientific with continuous memory
The code name "Woodstock" referred both to the Woodstock series of calculators, and to the processor architecture use in them. The same processor architecture was also used in the Topcat, Sting, and Spice series, and the HP-67.
Enhancements:
- Build problems that occurred with certain versions of Bison were fixed.
- The need for an X server during the build process was eliminated.
Download (4.5MB)
Added: 2006-10-31 License: GPL (GNU General Public License) Price:
664 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above programmable search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed