Topic: computing (Page 37)

You are looking at all articles with the topic "computing". We found 484 matches.

Hint: To view all topics, click here. Too see the most popular topics, click here instead.

πŸ”— Nagle's Algorithm

πŸ”— Internet πŸ”— Computing πŸ”— Computing/Networking

Nagle's algorithm is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. It was defined by John Nagle while working for Ford Aerospace. It was published in 1984 as a Request for Comments (RFC) with title Congestion Control in IP/TCP Internetworks in RFCΒ 896.

The RFC describes what he called the "small-packet problem", where an application repeatedly emits data in small chunks, frequently only 1 byte in size. Since TCP packets have a 40-byte header (20 bytes for TCP, 20 bytes for IPv4), this results in a 41-byte packet for 1 byte of useful information, a huge overhead. This situation often occurs in Telnet sessions, where most keypresses generate a single byte of data that is transmitted immediately. Worse, over slow links, many such packets can be in transit at the same time, potentially leading to congestion collapse.

Nagle's algorithm works by combining a number of small outgoing messages and sending them all at once. Specifically, as long as there is a sent packet for which the sender has received no acknowledgment, the sender should keep buffering its output until it has a full packet's worth of output, thus allowing output to be sent all at once.

Discussed on

πŸ”— DNA Computing

πŸ”— Computing πŸ”— Computer science πŸ”— Biology πŸ”— Chemistry πŸ”— Genetics

DNA computing is a branch of computing which uses DNA, biochemistry, and molecular biology hardware, instead of the traditional silicon-based computer technologies. Research and development in this area concerns theory, experiments, and applications of DNA computing. The term "molectronics" has sometimes been used, but this term has already been used for an earlier technology, a then-unsuccessful rival of the first integrated circuits; this term has also been used more generally, for molecular-scale electronic technology.

Discussed on

πŸ”— Background of .plan files: the 1977 Finger Protocol

πŸ”— Internet πŸ”— Computing

In computer networking, the Name/Finger protocol and the Finger user information protocol are simple network protocols for the exchange of human-oriented status and user information.

Discussed on

πŸ”— Jensen's Device

πŸ”— Computing

Jensen's Device is a computer programming technique that exploits call by name. It was devised by Danish computer scientist JΓΈrn Jensen, who worked with Peter Naur at Regnecentralen. They worked on the GIER Algol compiler, one of the earliest correct implementations of ALGOL 60. ALGOL 60 used call by name.

Discussed on

πŸ”— Music Macro Language

πŸ”— Video games πŸ”— Computing πŸ”— Electronic music

Music Macro Language (MML) is a music description language used in sequencing music on computer and video game systems.

πŸ”— Homoiconicity

πŸ”— Computing

In computer programming, homoiconicity (from the Greek words homo- meaning "the same" and icon meaning "representation") is a property of some programming languages. A language is homoiconic if a program written in it can be manipulated as data using the language, and thus the program's internal representation can be inferred just by reading the program itself. For example, a Lisp program is written as a regular Lisp list, and can be manipulated by other Lisp code. In homoiconic languages, all code can be accessed and transformed as data, using the same representation. This property is often summarized by saying that the language treats "code as data".

In a homoiconic language, the primary representation of programs is also a data structure in a primitive type of the language itself. This makes metaprogramming easier than in a language without this property: reflection in the language (examining the program's entities at runtime) depends on a single, homogeneous structure, and it does not have to handle several different structures that would appear in a complex syntax.

As noted above, a commonly cited example is Lisp, which was created to allow for easy list manipulations and where the structure is given by S-expressions that take the form of nested lists. Lisp programs are written in the form of lists; the result is that the program can access its own functions and procedures while running, and programmatically alter itself on the fly. Homoiconic languages typically include full support of syntactic macros, allowing the programmer to express transformations of programs in a concise way. Examples are the programming languages Clojure (a contemporary dialect of Lisp), Rebol (also its successor Red), Refal, Prolog, and more recently Julia.

Discussed on

πŸ”— The Complexity of Songs

πŸ”— Computing πŸ”— Computing/Software πŸ”— Computing/Computer science

"The Complexity of Songs" is a journal article published by computer scientist Donald Knuth in 1977, as an in-joke about computational complexity theory. The article capitalizes on the tendency of popular songs to devolve from long and content-rich ballads to highly repetitive texts with little or no meaningful content. The article notes that a song of length N words may be produced remembering, e.g., only O(log N) words ("space complexity" of the song).

Discussed on

πŸ”— Whitespace programming language

πŸ”— Computing πŸ”— Computing/Software

Whitespace is an esoteric programming language developed by Edwin Brady and Chris Morris at the University of Durham (also developers of the Kaya and Idris programming languages). It was released on 1 April 2003 (April Fool's Day). Its name is a reference to whitespace characters. Unlike most programming languages, which ignore or assign little meaning to most whitespace characters, the Whitespace interpreter ignores any non-whitespace characters. Only spaces, tabs and linefeeds have meaning. A consequence of this property is that a Whitespace program can easily be contained within the whitespace characters of a program written in another language, except possibly in languages which depend on spaces for syntax validity such as Python, making the text a polyglot.

The language itself is an imperative stack-based language. The virtual machine on which the programs run has a stack and a heap. The programmer is free to push arbitrary-width integers onto the stack (currently there is no implementation of floating point numbers) and can also access the heap as a permanent store for variables and data structures.

Discussed on

πŸ”— Icon (programming language)

πŸ”— Computing

Icon is a very high-level programming language featuring goal-directed execution and many facilities for managing strings and textual patterns. It is related to SNOBOL and SL5, string processing languages. Icon is not object-oriented, but an object-oriented extension called Idol was developed in 1996 which eventually became Unicon.

Discussed on

πŸ”— Linux Router Project

πŸ”— Computing πŸ”— Computing/Software πŸ”— Computing/Free and open-source software πŸ”— Linux

The Linux Router Project (LRP) is a now defunct networking-centric micro Linux distribution. The released versions of LRP were small enough to fit on a single 1.44MB floppy disk, and made building and maintaining routers, access servers, thin servers, thin clients, network appliances, and typically embedded systems next to trivial.

Discussed on