- •Часть 4
- •Составитель Бабаджан Сергей Савельевич
- •Transmetamorphosis
- •Thinking caps on
- •Transmetamorphosis,tasks
- •It slices, it dices
- •Stop the clocks
- •‘Asyncronous logic ‘, tasks.
- •Task1. Answer the following questions.
- •Interview with bjarne stroustrup
- •Task1. Say whether the following is true, false or is not mentioned
- •Task 2. Answer the following questions
- •Fuzzy maths
- •In a few short years, Google has turned from a simple and popular company into a complicated and controversial one
- •The world brain
- •From primes to share prices
- •Fuzzy Maths ,tasks , part1( up to ‘the outside world sees it differently’)
- •Task1.Answer the following questions.
- •The Discover Interview: Marvin Minsky
- •What are your latest ideas about the mind, as set out in The Emotion Machine?
- •Is there other work in neuroscience or ai that interests you?
- •Can artificial intelligence have human-style common sense?
- •What is the value in creating an artificial intelligence that thinks like a 3-year-old?
- •Why has the landscape changed for funding scientific research?
- •It sounds like you could make a very smart computer, but is your ultimate goal to actually reproduce a human being?
- •To what purpose?
- •Has science fiction influenced your work?
- •What did you do as consultant on 2001: a Space Odyssey?
- •If we developed the perfect artificial brain, what would be the difference between that and the real thing?
- •Task1.Say whether the following is true, false or is not mentioned.
- •Your child is next door on the computer
- •Task1.Which word means
- •Task2.Answer the following questions.
- •Task 3.Say whether the following is true, false or isn’t mentioned.
- •Task1.Find the words that mean the following.
- •Task2.Answer the following questions.
- •Task3.Say whether then following is true,false or is not mentioned.
- •Molecular Computers part1
- •Find sentences in support or against the following
‘Asyncronous logic ‘, tasks.
Task1. Answer the following questions.
1.What made chip designers remember old technologies?
2.How can these technologies be used?
3.What makes multithreading so good?
4.What price do we have to pay for it?
5.Why does asynchronous logic require a radical change in the way of thinking?
6.What are the advantages of asynchronous logic?
7.Where can it be used?
Task2.Say whether the following is true,false or is not mentioned. Correct the wrong statements.
1.modern chips are not fast enough to give a big increase in performance.
2.Falling computer performance made designers apply to old technologies.
3.When they were first developed the new techniques were found useless.
4.SMT works with several programs at a time.
5.With SMT you can get a good increase in performance with only a few design changes.
6.As chips grow in complexity they depend on the clock signal to a greater and greater extent.
7.Asyncronous chips are smaller than ordinary ones and are ideal for high speed computers .
8.They are more secure and that makes them more power hungry.
Interview with bjarne stroustrup
Biltek: What ideas were behind the initial design and implementation of C++? Are these ideas still fresh and valid?
Bjarne Stroustrup: The initial idea was to create a language that allowed programming to be simultaneously elegant and efficient. That idea is obviously as relevant as ever. The most-recently hyped languages seem to be neither for large-scale system building.
The particular approach that I took: to add the Simula class concept to C and to simultaneously improve the facilities for static type checking was only the beginning. More recent improvements, such as templates and exceptions, have taken C++ programming far closer to my original ideals than could be done with only its initial feature set. ISO Standard C++ is a far better approximation to my ideals than earlier versions. The standard library provides many examples of the expressive power of Standard C++. I expect major advances in C++ libraries, both in the standard libraries and in mo more specialized libraries. See links from my C++ page.
Importantly, we have also seen major advances in the techniques used to build systems using C++, such as generic programming using templates and exception-safe resource management using constructors and destructors.
Biltek: What was the response from C community to C++? Was C++ adapted in general or is the majority of C++ programmers those who learnt C++ in the first place?
BS: Responses vary. Some take to C++ as ducks to water, some don’t have a clue either way and follow the style they first encounter as the one true style, and some react violently against the “complicated” C++ facilities - typically missing the programming styles and techniques that those facilities exist to support.
I suspect that the majority of C++ programmers still learn C first, but these days this is simply a result of misguided education policies. C++ is easily a better first language than C. If for no other reason, than because it has better type checking and a better standard library. For a more detailed arguments, see “Learning Standard C++ as a New Language”, which can be downloaded from my home pages.
Biltek: Do you think C++ has missed the Web?
BS: Or maybe the web missed C++? In the rush to bring new commercial applications to market, good scalable system design has often been ignored. I think that C++ has an expanding role within the infrastructure of the Web, just as it has within just about any other large system.
Also, in which language is your browser programmed? C++, of course, in almost all cases.
Biltek: What are the most important milestones for C++ in the 80’s and 90’s? Do you predict any significant event in this decade?
BS: The most important events in the 80s must have been the first commercial release of my original C++ compiler and the publication of the 1st edition of TC++PL. Those happened on the same day, October 14 1985.
I consider the most important milestones of the 90s to be the ISO standard (approved by vote in 1997 and ratified in 1998) and publication of the 3rd edition of TC++PL in 1997.
I pick these pairs of events to emphasize the importance of matching language features with the programming techniques they exist to support.
My guess is that the key event in the 00s will be the C++0x revision of the ISO C++ Standard. My prediction (and hope) is that this will include major new standard libraries, but no major language changes. I hope to see standardized support for concurrency, resource management, pattern matching, and much more. I would probably have to write a 4th edition of TC++PL to match, but C++0x is still several years into the future. The C++ community still needs to catch up with the 1998 standard both in terms of understanding the facilities offered and the techniques needed to use Standard C++ well.
Biltek: Java and C# have been promoted for an alternative to C++. What do you
think about Java and C# both technically and as being an “alternative”?
BS: C++ has become the dominant general-purpose programming language. That implies that any new language must be marketed as an alternative to C++.
I am no fan of proprietary programming languages. Nor do I like the idea of closely integrating a programming language with a proprietary systems architecture. Finally, I consider the much-hyped “simplicity” of these languages a result of immaturity and a focus on novices at the expense of experienced system builders, and a focus on small programs at the expense of larger systems.
That said, someone who doesn’t share my worries about vendor lock-in and who doesn’t have my needs for scale and performance can gain some advantages from using a more constrained language with more direct support for some common applications.
Biltek: How much has the latest standard penetrated into real world? (compilers, usage by programmers, etc.)
BS: The recent releases of C++ implementations are close enough to the standard for me to use them all for the latest C++ programming techniques (relying on exceptions and templates). I also get good portability across different compilers and systems.
I see many programmers moving to advanced and productive style of C++ relying on the standard library and other template-based libraries. Naturally, not everyone has noticed that the C++ really did change with the standard and the programming techniques it supports. Many programmers are still stuck with an antiquated (and less-productive) view of C++ as “just a better C” or as “a language for object-oriented programming using class hierarchies”. However, that is changing. As time passes, more programmers come to master generic programming techniques, use of exceptions, and multiparadigm programming (that is, programming using a combination of techniques drawn from object-oriented programming, generic programming, etc.).
There are major differences in the degree to which these techniques have penetrated into different user communities. New textbooks, such as TC++PL3 and Koenig & Moo: “Accelerated C++” help here.
Biltek: Do you believe GUI tools and fancy methodologies will really change how programming is done?
BS: Definitely. There is a vast difference between, say, using Borland C++ Builder to craft an interface and to program that interface directly from an library. However, not every programming task is suited to GUI tools, and I think that most serious systems building - C++’s greatest area of strength - is large unaffected by GUI tools.
Different people mean different things by words such as “fancy methodologies”. I’m not a great believer in elaborate design methods with supporting tools. I am, however, a strong supporter of systematic use of data abstraction, object-oriented programming and generic programming. Anyone who sits down and just writes page after page of code without an overall design and without supporting classes and templates is simply wasting time and creating unnecessary maintenance problems.
The key to good programs are classes, class hierarchies, and templates that directly represent design decisions and keep separate concerns separate in the code. Often, the best approach to a challenging application is first to design supporting libraries. Without library support, just about everything is difficult in C++. With suitable language support, most things are easy. That is one reason that much of the effort in the design of C++ has been to improve the facilities for writing libraries.
Biltek: What would you suggest to students and programmers just beginning their career in computing/programming?
BS: Don’t just study computing/programming. Gain experience in one or more other fields so that you have expertise that gives you an idea of what is worth computing. Also, be sure that you can express your ideas effectively in writing and verbally. Unexplained ideas are sterile.
When looking at programs and systems, try to express concepts as directly as possibly in code - in any language. Learn several programming languages - knowing only one language can stifle the imagination and is a prescription for bigotry. In general, gain acquaintance with a variety of systems, ideas, and techniques. Your time as a student is the time when you can explore widely. Afterwards, in “the real world”, you will most likely have to focus on a few specific problems and have far less time to explore and experiment.
