Topic: Computing (Page 19)
You are looking at all articles with the topic "Computing". We found 481 matches.
Hint:
To view all topics, click here. Too see the most popular topics, click here instead.
๐ Lambda lifting
Lambda lifting is a meta-process that restructures a computer program so that functions are defined independently of each other in a global scope. An individual "lift" transforms a local function into a global function. It is a two step process, consisting of;
- Eliminating free variables in the function by adding parameters.
- Moving functions from a restricted scope to broader or global scope.
The term "lambda lifting" was first introduced by Thomas Johnsson around 1982 and was historically considered as a mechanism for implementing functional programming languages. It is used in conjunction with other techniques in some modern compilers.
Lambda lifting is not the same as closure conversion. It requires all call sites to be adjusted (adding extra arguments to calls) and does not introduce a closure for the lifted lambda expression. In contrast, closure conversion does not require call sites to be adjusted but does introduce a closure for the lambda expression mapping free variables to values.
The technique may be used on individual functions, in code refactoring, to make a function usable outside the scope in which it was written. Lambda lifts may also be repeated, in order to transform the program. Repeated lifts may be used to convert a program written in lambda calculus into a set of recursive functions, without lambdas. This demonstrates the equivalence of programs written in lambda calculus and programs written as functions. However it does not demonstrate the soundness of lambda calculus for deduction, as the eta reduction used in lambda lifting is the step that introduces cardinality problems into the lambda calculus, because it removes the value from the variable, without first checking that there is only one value that satisfies the conditions on the variable (see Curry's paradox).
Lambda lifting is expensive on processing time for the compiler. An efficient implementation of lambda lifting is on processing time for the compiler.
In the untyped lambda calculus, where the basic types are functions, lifting may change the result of beta reduction of a lambda expression. The resulting functions will have the same meaning, in a mathematical sense, but are not regarded as the same function in the untyped lambda calculus. See also intensional versus extensional equality.
The reverse operation to lambda lifting is lambda dropping.
Lambda dropping may make the compilation of programs quicker for the compiler, and may also increase the efficiency of the resulting program, by reducing the number of parameters, and reducing the size of stack frames. However it makes a function harder to re-use. A dropped function is tied to its context, and can only be used in a different context if it is first lifted.
Discussed on
- "Lambda lifting" | 2018-09-22 | 75 Upvotes 23 Comments
๐ Apple Pippin (1996)
The Apple Pippin is a defunct open multimedia technology platform, designed by Apple Computer, and marketed as PiPP!N. According to Apple, Pippin was directed at the home market as "an integral part of the consumer audiovisual, stereo, and television environment."
Pippin is based on the Apple Macintosh platform, including the classic Mac OS architecture. Apple built a demonstration device based on Pippin called "Pippin Power Player," and used it to demonstrate the platform at trade shows and to the media, in order to attract potential software developers and hardware manufacturers. Apple licensed the Pippin technology to third-party companies. Bandai Company Ltd. developed the ATMARK and @WORLD models, and focused them on the gaming and entertainment business in Japan and the United States. Katz Media developed the KMP 2000, and focused it on vertical markets throughout Europe and Canada.
Discussed on
- "Apple Pippin (1996)" | 2018-03-31 | 68 Upvotes 29 Comments
๐ Bitmessage: a decentralized, encrypted, trustless communications protocol
Bitmessage is a decentralized, encrypted, peer-to-peer, trustless communications protocol that can be used by one person to send encrypted messages to another person, or to multiple subscribers.
In June 2013, the software experienced a surge of new adoptions after news reports of email surveillance by the US National Security Agency.
Bitmessage was conceived by software developer Jonathan Warren, who based its design on the decentralized digital currency, bitcoin. The software was released in November 2012 under the MIT license.
Bitmessage gained a reputation for being out of reach of warrantless wiretapping conducted by the National Security Agency (NSA), due to the decentralized nature of the protocol, and its encryption being difficult to crack. As a result, downloads of the Bitmessage program increased fivefold during June 2013, after news broke of classified email surveillance activities conducted by the NSA.
Bitmessage has also been mentioned as an experimental alternative to email by Popular Science and CNET.
Some ransomware programs instruct affected users to use Bitmessage to communicate with the attackers.
Discussed on
- "Bitmessage: a decentralized, encrypted, trustless communications protocol" | 2016-10-15 | 70 Upvotes 26 Comments
๐ List of Important Publications in Computer Science
This is a list of important publications in computer science, organized by field.
Some reasons why a particular publication might be regarded as important:
- Topic creator โ A publication that created a new topic
- Breakthrough โ A publication that changed scientific knowledge significantly
- Influence โ A publication which has significantly influenced the world or has had a massive impact on the teaching of computer science.
Discussed on
- "List of important publications in computer science" | 2020-07-27 | 30 Upvotes 2 Comments
- "List of Important Publications in Computer Science" | 2011-08-14 | 58 Upvotes 6 Comments
๐ M4 (computer language)
m4 is a general-purpose macro processor included in all UNIX-like operating systems, and is a component of the POSIX standard.
The language was designed by Brian Kernighan and Dennis Ritchie for the original versions of UNIX. It is an extension of an earlier macro processor m3, written by Ritchie for an unknown AP-3 minicomputer.
The macro preprocessor operates as a text-replacement tool. It is employed to re-use text templates, typically in computer programming applications, but also in text editing and text-processing applications. Most users require m4 as a dependency of GNU autoconf.
Discussed on
- "M4 (computer language)" | 2018-08-17 | 70 Upvotes 26 Comments
๐ Warren Abstract Machine
In 1983, David H. D. Warren designed an abstract machine for the execution of Prolog consisting of a memory architecture and an instruction set. This design became known as the Warren Abstract Machine (WAM) and has become the de facto standard target for Prolog compilers.
Discussed on
- "Warren Abstract Machine" | 2023-05-12 | 29 Upvotes 1 Comments
- "Warren Abstract Machine" | 2020-03-12 | 55 Upvotes 11 Comments
๐ MIPS R3000
The R3000 is a 32-bit RISC microprocessor chipset developed by MIPS Computer Systems that implemented the MIPS I instruction set architecture (ISA). Introduced in June 1988, it was the second MIPS implementation, succeeding the R2000 as the flagship MIPS microprocessor. It operated at 20, 25 and 33.33ย MHz.
The MIPS 1 instruction set is small compared to those of the contemporary 80x86 and 680x0 architectures, encoding only more commonly used operations and supporting few addressing modes. Combined with its fixed instruction length and only three different types of instruction formats, this simplified instruction decoding and processing. It employed a 5-stage instruction pipeline, enabling execution at a rate approaching one instruction per cycle, unusual for its time.
This MIPS generation supports up to four co-processors. In addition to the CPU core, the R3000 microprocessor includes a Control Processor (CP), which contains a Translation Lookaside Buffer and a Memory Management Unit. The CP works as a coprocessor. Besides the CP, the R3000 can also support an external R3010 numeric coprocessor and two other external coprocessors.
The R3000 CPU does not include level 1 cache. Instead, its on-chip cache controller operates external data and instruction caches of up to 256ย KB each. It can access both caches during the same clock cycle.
The R3000 found much success and was used by many companies in their workstations and servers. Users included:
- Ardent Computer
- Digital Equipment Corporation (DEC) for their DECstation workstations and multiprocessor DECsystem servers
- Evans & Sutherland for their Vision (ESV) series workstations
- MIPS Computer Systems for their MIPS RISC/os Unix workstations and servers.
- NEC for their RISC EWS4800 workstations and UP4800 servers.
- Prime Computer
- Pyramid Technology
- Seiko Epson
- Silicon Graphics for their Professional IRIS, Personal IRIS and Indigo workstations, and the multiprocessor Power Series visualization systems
- Sony for their PlayStation and PlayStation 2 (SCPH-10000 to SCPH-700XX - clocked at 37.5ย MHz for use as an I/O CPU and at 33.8ย MHz for compatibility with PlayStation games) video game consoles, and NEWS workstations, as well as the Bemani System 573 Analog arcade unit, which runs on the R3000A.
- Tandem Computers for their NonStop Cyclone/R and CLX/R fault-tolerant servers
- Whitechapel Workstations for their Hitech-20 workstation
- New Horizons Probe
The R3000 was also used as an embedded microprocessor. When advances in technology rendered it obsolete for high-performance systems, it found continued use in lower-cost designs. Companies such as LSI Logic developed derivatives of the R3000 specifically for embedded systems.
The R3000 was a further development of the R2000 with minor improvements including larger TLB and a faster bus to the external caches. The R3000 die contained 115,000 transistors and measured about 75,000 square mils (48ย mm2). MIPS was a fabless semiconductor company, so the R3000 was fabricated by MIPS partners including Integrated Device Technology (IDT), LSI Logic, NEC Corporation, Performance Semiconductor, and others. It was fabricated in a 1.2ย ฮผm complementary metalโoxideโsemiconductor (CMOS) process with two levels of aluminium interconnect.
Derivatives of the R3000 for non-embedded applications include:
- R3000A - A further development by MIPS introduced in 1989. It operated at clock frequencies up to 40ย MHz.
- PR3400 - Developed by Performance Semiconductor, introduced in May 1991, also at up to 40ย MHz. It integrated the Performance Semiconductor PR3000A and PR3010A onto a single die.
Derivatives of the R3000 for embedded applications include:
- PR31700 - A 75ย MHz microcontroller from Philips Semiconductors. Fabricated in a 0.35ย ฮผm process, delivered in a 208-pin LQFP, it operated at 3.3ย V and dissipated only 0.35ย W.
- RISController - A family of low-end microcontrollers from IDT. Models include the R3041, R3051, R3052, and R3081.
- TX3900 - A microcontroller from Toshiba.
- Mongoose-V - A radiation-hardened and expanded 10โ15ย MHz CPU for use on spacecraft, it is still in use today in applications such as NASA's New Horizons space probe.
Discussed on
- "MIPS R3000" | 2019-06-20 | 37 Upvotes 59 Comments
๐ Phantom OS, a Russian OS where โeverything is an objectโ
Phantom OS is an operating system mostly made by Russian programmers. Phantom OS is based on a concept of persistent virtual memory, and is managed-code oriented. Phantom OS is one of a few OSes that are not based on classical concepts of Unix-like systems. Its primary goal is to achieve simplicity and effectiveness in both the operating system and applications at the same time.
Phantom is based on the principle that "Everything is an object", in contrast to the Unix-like approach of "Everything is a file".
Discussed on
- "Phantom OS, a Russian OS where โeverything is an objectโ" | 2019-04-16 | 72 Upvotes 23 Comments
๐ Sabre (computer system)
Sabre Global Distribution System, owned by Sabre Corporation, is used by travel agents and companies around the world to search, price, book, and ticket travel services provided by airlines, hotels, car rental companies, rail providers and tour operators. Sabre aggregates airlines, hotels, online and offline travel agents and travel buyers.
Discussed on
- "Sabre (computer system)" | 2018-07-30 | 65 Upvotes 30 Comments
๐ Node.js wikipedia entry marked for deletion for not being notable
Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside of a web browser. Node.js lets developers use JavaScript to write command line tools and for server-side scriptingโrunning scripts server-side to produce dynamic web page content before the page is sent to the user's web browser. Consequently, Node.js represents a "JavaScript everywhere" paradigm, unifying web-application development around a single programming language, rather than different languages for server- and client-side scripts.
Though .js
is the standard filename extension for JavaScript code, the name "Node.js" doesn't refer to a particular file in this context and is merely the name of the product. Node.js has an event-driven architecture capable of asynchronous I/O. These design choices aim to optimize throughput and scalability in web applications with many input/output operations, as well as for real-time Web applications (e.g., real-time communication programs and browser games).
The Node.js distributed development project was previously governed by the Node.js Foundation, and has now merged with the JS Foundation to form the OpenJS Foundation, which is facilitated by the Linux Foundation's Collaborative Projects program.
Corporate users of Node.js software include GoDaddy, Groupon, IBM, LinkedIn, Microsoft, Netflix, PayPal, Rakuten, SAP, Voxer, Walmart, and Yahoo!.
Discussed on
- "Node.js wikipedia entry marked for deletion for not being notable" | 2011-04-12 | 67 Upvotes 27 Comments