Python não força o programador a pensar em objetos, mas eles fazem parte da linguagem desde o início, incluindo conceitos avançados como sobrecarga de operador…
The libferris virtual filesystem presents both files and their metadata as a virtual filesystem. The boundaries of what is considered a filesystem by libferris include such interesting data sources as PostgreSQL, LDAP and Firefox as well as standard Web items, such as HTTP, FTP and RDF.
http://www.purl.org/stefan_ram/pub/doc_kay_oop_en http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/begriff_objektorientierte_programmierung_de Alan Kay coined the phrase Object-Oriented Programming, but this is not his fault. He has repeatedly said that to him, OOP is about encapsulation and message passing, not inheritance and ontologies of types. But like so many other Cargo Cults in Computer Programming culture, OOP and inheritance are enchained like ancient mariner and albatross
Diagrammelemente werden hier mit Tastatur und einer einfachen Grammatik beschrieben = bessere Usability gegenüber anderen Klicki-Bunti-CASE-Tools; Fehlende Elemente lassen sich schnell direkt in UMLet mit Java programmieren. Ansonsten: http://astah.change-vision.com/en/index.html (formerly known as JUDE)
Home page for object technology, Eiffel, software reuse, components, O-O training and consulting, with extensive online documentation,tutorials, articles and manuals.
My existing research is mainly focused on lightweight generic programming techniques and the essence of (OO-style) design patterns. * Modular Visitor Components: A Practical Solution to the Expression Families Problem Bruno C. d. S. Oliveira ECOOP 2009. * Scala for Generic Programmers Bruno C. d. S. Oliveira, Jeremy Gibbons In Ralf Hinze, editor, Proceedings of the ACM SIGPLAN Workshop on Generic Programming (WGP'08) July 2008. * Objects to Unify Type Classes and GADTs Bruno C. d. S. Oliveira, Martin Sulzmann ICFP 2008
jose emilio labra gayo This page collects my personal links in the field of Programming Languages. At first, it was devoted to functional programming. Now, I am very interested in the expressiveness of programming languages in general. With the term advanced I mean that it is oriented to researchers on programming languages .
Timber program reacts to events sent to it from its execution environment. This process is potentially infinite, and the order of external events is not known in advance.To capture this intuition, Timber defines its primary run-time structure to be a set of interconnected reactive objects, that each encapsulate a piece of the global program state. A reactive object is a passive entity defined by a set of methods. Between invocations, a Timber object just maintains its state, ready to react . Timber objects evolve in parallel, although the methods belonging to a particular object are always run under mutually exclusion. Concurrency as well as state protection is thus implicit. Methods are either asynchronous or synchronous, as denoted by the keywords action and request, respectively. The most radical property of Timber is that it is free from any indefinitely blocking constructs; because of this, a Timber object is always fully responsive when not actively executing code.
Methods that are specialised on sub-classes introduce a number of well-known challenges for type systems: these challenges can now be met in a type system for the pattern calculus. The latter provides a foundation for computation based on pattern-matching in which different cases may have different specialisations of a default type. Supporting type specialisation by both type substitution and sub-typing makes it possible to type functions whose cases correspond to the different.
(GADTs) have received much attention recently in the fp community. They generalize the type-parameterized datatypes by permitting constructors to produce different type-instantiations of the same datatype. We show that existing oopl such as Java and C# can express GADT definitions, and a large class of GADT-manipulating programs, through the use of generics, subclassing, and virtual dispatch. However, some programs can be written only through the use of redundant run-time casts. We propose a generalization of the type constraint mechanisms of C# and Java to avoid the need for such casts, present a Visitor pattern for GADTs, and describe a switch construct as an alternative to virtual dispatch on datatypes. This paper is, of course, related to the other items posted here about GADTs. The examples in the introduction might be somewhat relevant to the recent discussion about the static versus dynamic features of Java, and its type system.
<?php
class exec_op extends operacoes
{
//determino o membro como privado
private $r;
function __construct()
{
//o comando abaixo determina que o construtor da classe
//pai deve ser usado
parent::__construct();
}
function __destruct()
{
//Da mesma forma que no construtor desta classe..
//o destrutor do pai deve ser usado
parent::__destruct();
}
public function print_soma($v1 = "", $v2 = "")
{
if ($v1 != "") {
$this->setV1($v1);
}
if ($v2 != "") {
$this->setV2($v2);
}
$this->r = $this->soma();
$this->imp();
}
public function print_modulo($v1 = "", $v2 = "")
{
if ($v1 != "") {
$this->setV1($v1);
}
if ($v2 != "") {
$this->setV2($v2);
}
$this->r = $this->ret_modulo();
$this->imp();
}
public function imp()
{
echo $this->r."<br>";
}
}
$exec = new exec_op();
// Retornará 13
$exec->print_soma();
//Retornará 1
$exec->print_modulo();
// Gera um erro "Fatal error: Call to private method
// operacoes::modulo() from context '' in operacoes.php on line xx"
echo $exec->modulo();
// Gera um erro "Fatal error: Call to protected method
// operacoes::divisao() from context '' in operacoes.class.php on line xx"
echo $exec->divisao();
// Retornará 7
echo $exec->subtracao();
// Gera um erro "Fatal error: Call to protected method
// operacoes::multiplicacao() from context '' in operacoes.class.php on line 122
echo $exec->multiplicacao();
?>
In this introduction to the special issues, we begin by outlining a concrete example that indicates some of the motivations leading to the widespread use of inheritance networks in computational linguistics.
"Scala fuses object-oriented and functional programming in a statically typed programming language. It is aimed at the construction of components and component systems."
Scala is a modern multi-paradigm programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages.
Old, but very good article on Singleton (and OO) misunderstand/misuse. From my opinion, a second edition (e.g. "Patterns revisited") of the Patterns book is necessary, though it's horrible that Mr. Vlissides has passed away.
K. Murata, R. Horspool, E. Manning, Y. Yokote, and M. Tokoro. Proceedings of the 4th International Workshop on Object-Orientation in Operating Systems, page 68--71. Washington, DC, USA, IEEE Computer Society, (1995)
C. Schneider, A. Zündorf, and J. Niere. Workshop on Directions in Software Engineering Environments; 26th international conference on software engineering, ICSE 2004, Scotland, (2004)
C. Schneider, A. Zündorf, and J. Niere. Workshop on Directions in Software Engineering Environments in 26th international conference on software engineering, Edinburgh, Scotland, UK, (May 2004)