(books/AI?) Design Concepts in Programming Languages

Universal Music International | ISBN-13: 9780262201759 | English | PDF | 1347 Pages | Size: 5.35 MB
Introduction
Hundreds of programming languages are in use today—scripting languages for Internet commerce, user interface programming tools, spreadsheet macros, page format specification languages, and many others. Designing a programming language is a metaprogramming activity that bears certain similarities to programming in a regular language, with clarity and simplicity even more important than in ordinary programming. This comprehensive text uses a simple and concise framework to teach key ideas in programming language design and implementation. The book’s unique approach is based on a family of syntactically simple pedagogical languages that allow students to explore programming language concepts systematically. It takes as its premise and starting point the idea that when language behaviors become incredibly complex, the description of the behaviors must be incredibly simple.
Table of Contents
Preface xix
Acknowledgments xxi
I Foundations 1
1 Introduction 3
2 Syntax 19
3 Operational Semantics 45
4 Denotational Semantics 113
5 Fixed Points 163
II Dynamic Semantics 205
6 FL: A Functional Language 207
7 Naming 307
8 State 383
9 Control 443
10 Data 539
III Static Semantics 615
11 Simple Types 617
12 Polymorphism and Higher-order Types 701
13 Type Reconstruction 769
14 Abstract Types 839
15 Modules 889
16 Effects Describe Program Behavior 943
IV Pragmatics 1003
17 Compilation 1005
18 Garbage Collection 1119
A A Metalanguage 1147
B Our Pedagogical Languages 1197
References 1199
Index 1227
*_____________________________________________________
(APARTE/RELACIONADO COM AI?) Understanding the Universe: From Quarks to the Cosmos

World Scientific Publishing Company, Inc. | ISBN-13: 9789812387035 | English | PDF | 298 Pages | Size: 12.4 MB
incoln is a physicist and the collaborating author on numerous research papers at the Fermi National Accelerator Laboratory (Fermilab), where he investigates high-energy particles. A veteran of many popular talks on physics, he charmingly relates the tale of humankind’s almost insatiable curiosity about the ultimate nature of nature and the quest to determine the basic particles of matter. His style is engaging and obviously directed to informed lay readers, but the more scientifically minded will find it equally appealing. Still, at over 500 pages, it is not light reading. If digested with the notion that this topic is presented in a broad swath, both historically and scientifically, and not meant to be definitive, the work offers readers an appreciation of the investigative procedure, the accumulated body of research, and the people who did the investigating. Recommended for public and academic collections.
Table Of Contents
Foreword ix
Preface xiii
Acknowledgements xxiii
1. Early History 1
2. The Path to Knowledge (History of Particle Physics) 22
3. Quarks and Leptons 107
4. Forces: What Holds It All Together 147
5. Hunting for the Higgs 209
6. Accelerators and Detectors: Tools of the Trade 248
7. Near Term Mysteries 315
8. Exotic Physics (The Next Frontier) 383
9. Recreating the Universe 10,000,000 Times a Second 444
10. Epilogue: Why Do We Do It? 487
Appendix A Greek Symbols 492
Appendix B Scientific Jargon 493
Appendix C Particle-Naming Rules 496
Appendix D Essential Relativity and Quantum Mechanics 501
Appendix E Higgs Boson Production 513
Appendix F Neutrino Oscillations 519
Further Reading 525
Glossary 535
Index 557
* Quem por acaso tiver interesse em o lêr, que diga que eu mando para o e-mail
A Strong AI versus a Weak AI, definitions and ideas
A Strong AI versus a Weak AI, definitions and ideas
Published July 18, 2006 Artificial Intelligence , Object Oriented Design , Ontologies , Semantic Web , Technological Singularity , Web 2.0
For those who aren’t as well versed as some of the AI researchers, there is a fundamental difference between Strong AIs and where current AI research is. If you aren’t aware, expert systems are used commonly in software design. Expert systems are a part of Weak AIs. For the moment, Türing type AIs are out of reach. Türing type AIs are like the ones represented in popular speculative fiction.
But how far are they, really?
From Wikipedia’s entry on Strong AIs.
In the philosophy of artificial intelligence, strong AI is the supposition that some forms of artificial intelligence can truly reason and solve problems; strong AI supposes that it is possible for machines to become sapient, or self-aware, but may or may not exhibit human-like thought processes. The term strong AI was originally coined by John Searle, who writes:
- “according to strong AI, the computer is not merely a tool in the study of the mind; rather, the appropriately programmed computer really is a mind”
The term “artificial intelligence” would equate to the same concept as what we call “strong AI” based on the literal meanings of “artificial” and “intelligence“. However, initial research into artificial intelligence was focused on narrow fields such as pattern recognition and automated scheduling, in hopes that they would eventually allow for an understanding of true intelligence. The term “artificial intelligence” thus came to encompass these narrower fields (”weak AI”) as well as the idea of strong AI.
Weak AI
In contrast to strong AI, weak AI refers to the use of software to study or accomplish specific problem solving or reasoning tasks that do not encompass (or in some cases, are completely outside of) the full range of human cognitive abilities. An example of weak AI software would be a chess program such as Deep Blue. Unlike strong AI, a weak AI does not achieve self-awareness or demonstrate a wide range of human-level cognitive abilities, and is merely an (arguably) intelligent, more specific problem-solver.
Some argue that weak AI programs cannot be called “intelligent” because they cannot really think. In response to claims that weak AI software such as Deep Blue are not really thinking, Drew McDermott wrote:
- “Saying Deep Blue doesn’t really think about chess is like saying an airplane doesn’t really fly because it doesn’t flap its wings.”
He argued that Deep Blue does possess intelligence and is simply lacking breadth of intelligence.
Others note that Deep Blue is merely a powerful, heuristic search tree, stating that claims of it “thinking” about chess are similar to claims of single cells “thinking” about protein synthesis; both are unaware of anything at all, and both merely follow a program which has been encoded within them. Many among these critics are proponents of Weak AI, claiming that machines can never be truly intelligent, while other, Strong AI proponents simply state that true self-awareness and thought as we know it may require a specific kind of “program” designed to observe and take into account the processes of one’s own brain. Many evolutionary psychologists point out that humans may have developed just such a program especially strongly for the purpose of social interaction or perhaps even deception, two behaviours at which humans are vastly superior to other animals.
General artificial intelligence
General artificial intelligence research aims to create AI that can replicate humans intelligence completely, often called an Artificial General Intelligence (AGI) to distinguish from less ambitious AI projects. As yet, researchers have devoted little attention to AGI, many claiming intelligence is too complex to be completely replicated. Some small groups of computer scientists are doing some AGI research, however. Organizations pursuing AGI include the Adaptive AI, Artificial General Intelligence Research Institute (AGIRI), CCortex, CodeSimian, Novamente LLC and the Singularity Institute for Artificial Intelligence. One recent addition is Numenta, a project based on the theories of Jeff Hawkins, the creator of the Palm Pilot. While Numenta takes a computational approach to general intelligence, Hawkins is also the founder of the RedWood Neuroscience Institute, which explores conscious thought from a biological perspective.
By most measures, demonstrated progress towards strong AI has been limited. No system can pass a full Turing test for unlimited amounts of time, although some AI systems do now fool some people at least initially (see the Loebner prize winners). Few active AI researchers are prepared to publicly predict whether, or when, such systems will be developed, perhaps due to the failure of bold, unfulfilled predictions for AI research progress in past years. There is also the problem of the AI effect, where any achievement by a machine tends to be deprecated as a sign of true intelligence.
Philosophy of strong AI and consciousness
John Searle and most others involved in this debate address whether a machine that works solely through the transformation of encoded data could be a mind, not the wider issue of monism versus dualism (i.e., whether a machine of any type, including biological machines, could contain a mind).
Searle states in his Chinese room argument that information processors carry encoded data which describe other things. The encoded data itself is meaningless without a cross reference to the things it describes. This leads Searle to point out that there is no meaning or understanding in an information processor itself. As a result Searle claims that even a machine that passed the Turing test would not necessarily be conscious in the human sense.
Some philosophers hold that if Weak AI is possible then Strong AI must also be possible. Daniel C. Dennett argues in Consciousness Explained that if there is no magic spark or soul, then Man is just a machine, and he asks why the Man-machine should have a privileged position over all other possible machines when it comes to intelligence or ‘mind’. In the same work, he proposes his Multiple Drafts Model of consciousness. Simon Blackburn in his introduction to philosophy, Think, points out that you might appear intelligent but there is no way of telling if that intelligence is real (i.e., a ‘mind’). However, if the discussion is limited to strong AI rather than artificial consciousness it may be possible to identify features of human minds that do not occur in information processing computers.
Many strong AI proponents believe the mind is subject to the Church-Turing thesis. This belief is seen by some as counter-intuitive and even problematic, because an information processor can be constructed out of balls and wood. Although such a device would be very slow and failure-prone, it could do anything that a modern computer can do. If the mind is Turing-compatible, it implies that, at least in principle, a device made of rolling balls and wooden channels can contain a conscious mind.
Roger Penrose attacked the applicability of the Church-Turing thesis directly by drawing attention to the halting problem in which certain types of computation cannot be performed by information systems yet are alleged to be performed by human minds.
Ultimately the truth of Strong AI depends upon whether information processing machines can include all the properties of minds such as consciousness. However, Weak AI is independent of the Strong AI problem and there can be no doubt that many of the features of modern computers such as multiplication or database searching might have been considered ‘intelligent’ only a century ago.
Methods of production
Computer simulating human brain model
This is seen by many as the quickest means of achieving strong AI, as it doesn’t require complete understanding. It would require three things:
- Hardware. An extremely powerful computer would be required for such a model. Futurist Ray Kurzweil estimates 1 million MIPS. If Moore’s law continues, this will be available for £1000 by 2020.
- Software. This is usually considered the hard part. Firstly it relies on the assumption that the human mind is the central nervous system and is governed by physical laws.
- Understanding. Finally, it requires sufficient understanding thereof to be able to model it mathematically. This could be done either by understanding the central nervous system, or by mapping and copying it. Neuroimaging technologies are improving rapidly, and Kurzweil predicts that a map of sufficient quality will become available on a similar timescale to the required computing power.
Once such a model is built, it will be easily altered and thus open to trial and error experimentation. This is likely to lead to huge advances in understanding, allowing the model’s intelligence to be improved/motivations altered.
Current research in the area is using one of the fastest supercomputer architectures in the world, namely the Blue Gene platform created by IBM to simulate a single Neocortical Column consisting of approximately 60,000 neurons and 5km of interconnecting synapses. More information can be found here.
The eventual goal of the project is to use supercomputers to simulate an entire brain.
Prospective applications
This section may contain original research or unverified claims.
Please help Wikipedia by adding references. See the talk page for details.Seed AI/technological singularity
A strong AI which performs recursive improvement would increase in intelligence indefinitely and exponentially, starting on the human level. The vastly superhuman intelligence thus produced would be capable of developing technology at a far faster rate than human scientists. Arguably it would be impossible for humans of relatively minuscule intelligence to predict what it would come up with - thus the term singularity.
Assuming that the functional human model approach is taken, some modifications will need to be made before this can occur.
The most significant being alterations to its motivations. Evolutionary psychology holds that humans are entirely motivated by an intricate set up of, ‘desire for anticipation of pleasure’ and ‘desire for anticipation of pain avoidance’ developed by natural selection. From this, it is posited, stems all human desires.
With an understanding of the model, all the desires of the model could be removed and new ones added - recursive self improvement being necessary for a technological singularity. Arguably the most important thing is to equip the Seed AI with only the desire to serve mankind - implicit in this is self improvement. For this reason the Singularity Institute for Artificial Intelligence was set up.
Note - if evolutionary psychology is wrong, we will be able to find out from the model.
The Arts
A strong AI may be able to produce original works of music, art, literature and philosophy. It should be noted however, that a strong AI is not a necessary requirement for the creation of novel works of art. There have already been weak AI painting programs created that have been able to manipulate a paintbrush through external hardware in order to paint original, non-random and interesting pieces of art. AAron is one example of such software. More information can be found here: http://www.stanford.edu/group/SHR/4-2/text/cohen.html
Cognitive Robotics
Cognitive Robotics involves applying various fields of Artificial Intelligence to Robotics. Strong AI in particular would be a great asset to this field.
Comparison of computers to the human brain
Parallelism vs speed
The brain gets its power from performing many parallel operations, a computer from performing operations very quickly.
The human brain has roughly 100 billion neurons operating simultaneously, connected by roughly 100 trillion synapses. Although estimates of the brain’s processing power put it at around 10^14 neuron updates per second, it is expected that the first unoptimized simulations of a human brain will require a computer capable of 10^18 FLOPS. By comparison a general purpose CPU (circa 2006) operates at a few GFLOPS.
However, a neuron is estimated to spike 200 times per second (this giving an upper limit on the number of operations). Signals between them are transmitted at a maximum speed of 150 meters per second. A modern 2GHz processor operates at 2 billion cycles per second or 10,000,000 times faster than a human neuron and signals in electronic computers travel at roughly the speed of light (300 000 kilometres per second). Even so, the limited number of transistors and their functional properties mean that they cannot replicate human brain functions.
If nanotechnology allowed the construction of devices of similar size and parallelism to the brain running at the speed of a modern computer, then a human model within would experience time as if it were occurring more slowly than it really was (relative to how humans experience time). Thus, an artificial brain could experience the elapsing of 1 minute as actually taking much longer, perhaps as if it were several hours. However, since the perception of how long something takes is different from the actual duration of the time period, how the artificial brain perceives the time period would depend entirely on the calculations and specific type of cognition during that time period.
Notes / Links
The relationship between HLAI and the human brain
The data structure of a human brain and something like a calculator are totally different. On one hand a calculator can process thousands of equations each second but the human brain processes only 1 equation per second. This doesn’t mean that the calculator is more superior than a human brain. It just means that the brain is a different form of computer that processes information differently. The human brain is a very powerful computer that can learn from past experiences and understand common sense knowledge which is something current computers can’t do.
The human brain consists of 10 billion neurons and 60 trillion connections. The data are stored in the neurons in terms of encapsulation and commonality. Although the brain has only 10 billion neurons it is able to store almost 8,000 trillion data because of the connections that each neuron has with other neurons. The data are also global in nature and each neuron will have associations with other neurons. All of the neurons and their connections are either strengthened or forgotten. The neurons get strengthened by a process of chemical electricity that makes their connections with other neurons stronger (or weaker).
When an object is recognized like an image or a sound, electricity is run through that neuron and its connections. This is how psychologists can understand what parts of the brain does what functions — by using a computer to analyze the electrical activities in the brain. Since there are many sensations coming into our brain each second, there isn’t just one area the brain is active but activity will run in multiple areas of the brain at the same time.
I did some observation of how the brain sends electricity throughout the neurons and came to the conclusion that we can actually simulate this activity in a software. First the brain locates an object (let’s call this object the target object). In this case an object could be anything — it can be an image of a car or a sound of a dog barking. Once the brain locates the target object in memory it runs electricity throughout all of the connections associated with that object. This will strengthen not only the target object that has been located but it will bring all the other objects (call these element objects) closer to the target object.


When the AI locates the three visual objects: A, B, C in memory it will run electricity through these nodes and all of its connections.


The mind has a fixed timeline. Only one element object can be activated at a given time in this timeline. This is how we prevent too much information from being processed and allow the AI to focus on the things that it senses from the 5 senses.
This finding is important because we know that the target object that the brain has located has to be strengthened. This is done by applying chemical electricity through that located target object. The only question I had was: “why did the electricity propagate throughout all of its connections too?”. Would that not strengthen all the element objects around the target object too?
The reason why the brain had to propagate electricity throughout all of the target object’s connections is because that is how the conscious is presented. The conscious is the voice in your head that speaks to you. It also gives you information about a situation, or help you solve a problem, or tell you definition of words. All the element objects from all the target objects will compete with one another to activate in the mind (the mind can only take in a limited amount of information). When that information is activated in the mind a lesser amount of electricity will be applied to that information and its connections. This is how the mind travels from one subject matter to the next.
The brain modifies information by constantly applying chemical electricity throughout all the target objects coming in from the 5 senses. The electricity strengthens not only that target object but it strengthens all the element objects that have association with the target object. This form of storing, retrieving, and modifying information in a network is what allows the host to have human-level intelligence.
Learning from childhood to adulthood and how the pathways become more complex
When the machine is at its early stages of life, it will have to build its pathways from simple data then as it gets older and there are more data in memory it will organize the pathways into complex intelligence. Just like how we humans have to learn to walk, to talk, to move, to eat, these machines have to go through life the same way. Lets illustrate the gradual forming of simple data into intelligent data by outlining a series of stages.
1. innate reflexes
2. trained to do things
3. sequential events
4. sentence commands
5. give robot option commands
6. practice makes perfect
7. copy other peoples behavior
1. innate reflexes
In this stage the robot will learn all the different objects that are in the environment from the 5 senses. Things like cat, dog, table, chair, red, blue, car, house, I, her, him, loud, soft etc. are learned and stored in memory. The 3-dimensional floater of all the objects will be created. Then the robot will start to move its arms and legs from innate built in reflexes. Movement of the arms, the legs, movement of the mouth, and controlling the vocal cords are the things that the robot must learn first. These experiences must be stored in memory in an organized way. Curiosity will be the factor that steers the robot into doing things that it never did before. Things like new objects it never learned before will have top priority over old objects it learned. New sensations will be more focused on then old sensations. By the time the robot learns most of the objects around him its memory banks will be filled with data and things around the robot will be more familiar. Meaning of the objects will also be established.
2. Trained to do things
This part is where a teacher will guide the robot into doing things that are appropriate and to force the robot to learn things that it supposed to know. Things like walking, and grabbing object, and throwing things around must be learned. The guide is used so that the robot will learn important things that it can use to control the environment. A thing like walking is important because you want to get from one destination to another. Writing using a pencil is important because it must learn to write letters. Things like walking and writing and speaking must be learned by a guide because we cant preprogram the robot to learn these things.

Although the guide isnt something we want to store in memory, the point is that the more we guide it the stronger the desired created pathway will be. When it is strong enough it can be used by itself and the guide pathway will be forgotten. The robot will find a way to use the desired created pathway to accomplish a goal. Walking for example, if the robot knows that walking will get it from one destination to the next, then when it sees food, it will use the walking path to go from its current location to the food. Reward is also playing a part in this learning process.
Also, during this process simple sequential consequences will be understood. Things like what is the consequence of dropping a ball, where should the ball be when you drop it, and solid objects and soft objects have different properties.
3. Sequential events
In this stage the robot begins to learn how objects interact with one another. When two objects hit each other both objects suffer, when the robot fall down its painful, when it grabs a solid object it has the same shape, but if it grabs a soft object it bends its shape. So, sequential events will be learned. The consequences of the robots actions in comparison to the environment will also be learned. By learning all these things the individual data in memory will turn more complex and long. The robot will be able to piece together the outcome of an event just by looking at its past. Another thing to remember is that curiosity is the key to new pathways. The more unique the event is the more the robot wants to learn it. The old events it learned many times will be ignored because it learned it already, but the new sensations will guide it to learn new things. Think of curiosity as a form of pleasure and old sensation as pain. Since this robot does things in terms of pleasure it will look for new data from the environment. At this stage things like lying and magic cant be distinguished yet. The robot will not be able to lie yet and if it sees a man flying in the sky or walking on water the robot will think it is real.
4. Sentence commands
This part will require the robot to know basic grammar like the names of most objects that are around the environment. These basic grammar must be thought to the robot and understood by the robot. The rules program will do the rest by assigning the meaning for the grammar. Even hidden objects must be understood like jump, run, walk, loud, soft, etc. Once a basic language is established we can combine sequential events with grammar and force the robot to do things by using words as the tool. An example would be if you said sit and the robot sits. When you say: pick up the book the robot will pick up the book. When you say: read the first paragraph and the robot reads the first paragraph of the book. These are commands that you give to the robot to indicate what you want it to do. There is no deception, or lying involved in the command process. Its simply someone giving a command and the robot taking the action. The robot may not understand what you said and make a mistake, but having a voice in the head that tells the robot to do things hasnt been created yet.
5. Giving the robot option commands
This part is an extension of the last stage. Instead of saying a word and letting the robot do things we can add trees to the command pathways and let the robot decide what it wants to do. This is very affective because trees combined with commands allow the robot to use if statements to accomplish a goal.

So, the tree decides what the robot will do. If a teacher gives the command then the robot will listen, if its a friend that gives the command the robot wont listen. There are also innate likes and dislikes the robot will have and there are commands out there that tap into that kind of thing. For example, if the robot was given this command: pick the food you like to eat. Within the robots memory there are powerpoints that determine an objects worth. PM will tap into that and pick the one with the most powerpoints. Commands like: pick the color you like, eat the food you like, play with the toy you like, buy the present you want, wear the clothes you love, and so forth will all depend on the robot. These likes and dislikes can also be a learned thing.
6. Practice makes perfect
Now, lets get on with a more complex way the pathways can be formed. When we practice something like riding a bike, we are actually creating new pathways to ride the bike. Practicing will help the robot to decide the best newly created pathway to pick to accomplish a goal. We can build a pathway in memory that will treat practicing something as a command.

This simple example shows that by using English we can guide the robot to do infinite amounts of tasks. The above example is a practice pathway. It uses a command that will tell the robot to do something until a desired outcome is present. If it doesnt accomplish the goal then it will repeat itself until the task is completed. At the same time this is happening more trees can be added to this practice pathway like, if you practiced for 7 times and you still didnt accomplish a goal then quite. Or when you are hungry and you dont have the strength to shoot then stop practicing. The existing pathways will add, strengthen, or minus trees from it as the robot learns more. Instead of following commands there are other factors to consider before you take action to accomplish the commands. The robot will do the things that a society will consider appropriate at the time. If a society says it should lie in order to not do the task then thats what the robot will do. If a society says the command isnt appropriate in this type of situation then the robot will not follow it. If the robot finds the command dangerous and it can really damage itself, then it will not carry out the command. This is where the inner voice that is the core of the consciousness is built. The consciousness is the average of the things thought to the robot by society.
7. Copy other peoples behavior
This part is a very powerful tool used to learn things. We can go ahead and train a tree that will allow the robot to copy certain things from what it sees. Things that it sees on TV will be learned and copied by the robot. Copying will allow the robot to learn the most appropriate things to do in a society. When it is in a situation it will do things in terms of what society as a whole did. The way it dresses, the way it behaves in school, the things that it likes/dislikes, how to dress, how to take care of itself, how to get money, how to get food to survive, what to say to certain people, how to make friends, how to get good grades in school, and finding answers to questions. All these things are pathways that were learned by copying other people in our environment.

This part will require not only trees but also relations to past data and innate instructions of the robot. Pattern matching will find these hidden things and put them in the pathways. Something as complex as copying people require that you understand the relationship between the robot and other objects. If other people move their hand, you will copy them by moving your hand. You would need to know that your hand is one object and it belongs to you as an individual and that the other person you try to copy has a hand too and they are an individual too. Also, you have to understand when to copy them. If a copy is one second after you see the person do the action, then one second is the time it takes to copy their action.
From all these pathways we can build on each other and make even more complex thinking such as representing a hierarchy system. Things like parent-child relationships, who is the grandfather of the family, or what does having a brother really mean, will be represented by complex thinking. When people say thats your father, there are lots of complex things we need to know before we can understand that kind of thing. Complex things such as: where do humans come from?, or parents are supposed to take care of their kids or everyone has one female parent and a male parent or the male parent is the father and the female parent is the mother. It is a very complicated intelligent system when it comes to representing a family tree and in order to understand it we must first learn the simple things.
Robotics
The big question is: how are the reflexes and innate traits built into the robot? The answer to the question isnt perfect but we can observe the human body and how it functions and simulate this behavior on the robot. Things such as the taste of a food should yield the same taste for both the human and the robot. Pain and the degree of pain for certain senses should be the same. The attractiveness or the ugliness of objects should be the same too. The field of robotics has already accomplished a lot in terms of making robotic parts similar to human parts. Im sure there are a lot more improvements that can be made to advance the science of robotics in the near future.
Remember, we arent trying to duplicate human behavior exactly, we are trying to create something similar. As long as the traits that humans and robots have are similar they can learn to understand each other. The dissimilar traits between robots and humans can be understood by complex intelligence.
Other topics:
1. Learning language and common sense knowledge
2. AI two-player games using the universal artificial intelligence program

