http___programarcadegames.com_index.php_chapter_what_is_a_computer_language_lang_tr_1.xml
1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1 11.1 11.2 11.3 12.1 12.2 12.3 13.1 14.1 14.2 14.3 14.4 15.1 15.2 15.3 15.4 15.5 16.1 16.2 16.3 16.4 17.1 17.2 19.1 19.2 19.3 19.4 19.5 20.1 20.2 20.3 20.4 21.1 21.2 21.3 22.1 23.1 23.2 23.3 24.1 24.2 24.3 24.4 25.1 25.2 25.3 26.1 26.2 27.1 27.2 27.3 28.1 29.1 29.2 30.1 30.2 30.3 31.1 31.2 31.3 31.4 31.5 32.1 32.2 33.1 34.1 34.2 34.3 35.1 35.2 35.3 36.1 37.1 38.1 39.1 40.1 42.1 43.1 43.2 44.1 45.1 46.1 47.1 48.1 49.1 50.1
Program Arcade GamesWith Python And Pygame English Dutch - Nederlands French Hungarian - Magyar Portuguese - Português Russian - Pycckий Spanish - Español Turkish - Türkçe Chapter 2: What is a Computer Language? What makes a computer language? Why do computers have them? Why are there so many different computer languages? It isn't necessary to understand the answer to these questions to do basic programming, just like understanding how an engine works isn't necessary to drive a car. However to progress to an advanced level it is. This chapter provides a brief explanation to get started with. 2.1 Short History of Programming Computers are electronic, and they are digital. To a computer everything is in terms of no voltage potential along a wire, or some voltage available. No voltage means a zero to the computer, and some voltage means a one. Computers can't actually count higher than that without combining multiple ones and zeros. In the early days, switches were used to load ones or zeros into computer memory. Figure 2.1, courtesy of Wikimedia Commons, shows an Altair 8800. The front panel switches were used to load in the program. The lights showed the output. There was no monitor. Each set of on/off switches represented a number. Each number would represent data or an instruction for the computer to perform. This system of only using ones and zeros to represent numbers is called the binary number system. This type of computer language is called a 1GL, or first generation programming language. Binary numbers are usually represented in groups of four. For example: Both data and computer instructions are stored in binary. Machine language are the binary numbers representing instructions that the computer interprets. Not all binary data is machine language however. Data such as documents, databases, financial figures are also stored in binary on the computer. This data is, of course, not intended to be run by the computer. An improvement over entering programs via switches was the use of hexadecimal codes. The decimal numbers used by most people use the digits 0-9. Hexadecimal uses the numbers 0-9 and A-F to represent a set of four switches, or the numbers 0-15. See the table below for an idea of how binary, decimal, and hexidecimal relate. In order to make entering programs easier, later computers allowed users to enter programs using assembly language. Each command used a mnemonic, and a program called a compiler would change the mnemonics into the numbers that represented the commands. This type of language is called a 2GL language, or second generation language. Figure 2.2 shows part of an example assembly language program, also courtesy of the Wikimedia Commons. While this was an improvement, it still wasn't very easy to program. The next generation of languages allowed for higher-level abstractions. The first of the third generation languages (COBOL, FORTRAN and LISP) were a lot easier to understand and program. The second and third generation languages used a program called a compiler. A compiler takes the program typed in by the user (called source code) and turns it into machine code. The programmer then runs the machine code. The original source code is not run. If there are several pieces of source code in a program, they can be linked together into one program with the use of a program called a linker. The linker is run on the machine code generated by the compiler to generate a final program. This final program is what the user runs, and the original source code is not needed. A disadvantage of compiling to machine language is that the program only works for that particular type of machine. Programs compiled for Windows computers do not work on Apple Macintosh computers, or Linux computers. Because the whole compile and link steps could be complex for new programmers, some languages instead ran using interpreters. These programs look at the source code and interpret it to machine language instructions on the fly. It also allows the same programs to run on Windows, Mac, and Unix computers, provided there is an interpreter available for each platform. The drawback of using interpreters is that it is slower to operate through an interpreter than in the machine's native language. Python is an example of an interpreted language. It is easier to develop in Python than C, but Python runs slower and must have a Python interpreter to work. Languages such as Java use a system where programs are compiled to machine code that runs on a Java Virtual Machine (JVM), rather than the actual machine. Another popular language that does this is C#, a Common Language Infrastructure (CLI) language that runs on the Virtual Execution System (VES) virtual machine. A full discussion of these is beyond the scope of this book, but feel free to read up on them. There are many different computer languages today. Because computers perform so many types of tasks, different languages have been developed that specialize in these tasks. Languages such as C are good for operating systems and small embedded computers. Other languages like PHP specialize in creating web pages. Python is a general purpose language that specializes in being easy-to-use. The company Tiobe keeps track of the popularity of various programming language in their index that is updated each month. It is a good idea to look here, and at job placement boards like DICE to keep up to date with what languages employers are looking for. Thankfully almost all languages share the same common elements, and once one language has been learned, the same theories will apply to the other languages. For an entertaining history of computing, I recommend watching: Triumph of the Nerds by Robert X Cringley, a three part series on the origins of computing. The movies are entertaining enough that your entire family might enjoy them. I also recommend the book Accidental Empires if you are more into reading than video. What happens after those videos? They don't even cover the birth of the Internet! Then check out the video series Nerds 2.0.1 also by Robert X Cringely. 2.2 Review 2.2.1 Multiple Choice Quiz Click here for a multiple-choice quiz. 2.2.2 Short Answer Worksheet Click here for the chapter worksheet. Click here for the chapter lab. You are not logged in. Log in here and track your progress. English version by Paul Vincent Craven Russian version by Vladimir Slav Turkish version by Güray Yildirim Dutch version by Frank Waegeman Hungarian version by Nagy Attila Portuguese version by Armando Marques Sobrinho and Tati Carvalho Spanish version by Aitor Peinador and Antonio Rodríguez
1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 11.1 12.1 13.1 14.1 15.1 16.1 17.1 18.1 19.1 20.1 21.1 22.1 23.1 24.1 25.1 26.1 27.1 28.1 29.1 30.1 31.1 32.1 33.1 34.1 35.1 36.1 37.1 38.1 39.1 40.1 41.1 42.1 43.1 44.1 45.1 46.1 47.1 48.1 49.1 50.1 51.1
Arcade Türü Oyun Programlamayıve Bilgisayar Bilimleri Öğrenin Chapter 2: Bilgisayar Dili Nedir? Bilgisayar dilleri ne yapar? Neden bilgisayarlarda onlar var? Neden çok fazla sayıda ve farklı programlama dili vardır? Nasıl araba sürebilmek için motorun nasıl çalıştığını anlamak gerekli değilse, basit programlama işleri için de bu soruların cevaplarını anlamak gerekli değildir. Ancak, ileri seviyeye doğru yol alındığında, bir bilgisayarın nasıl çalıştığını anlamak önemlidir. Bu bölüm, başlayabilmek için kısa bir açıklama içerir. 2.1 Programlamanın kısa tarihi Bilgisayarlar elektroniktir, ayrıca dijitaldirler. Bir bilgisayar için her şey, bir kablo boyunca gerilim(voltaj) olmasından veya olmamasından ibaretttir. Voltaj olmaması bilgisayar için sıfır demektir, herhangi bir voltaj değeri olması ise bir anlamına gelir. Aslında, bilgisayarlar sıfır ve birlerin yanyana gelmesinden daha fazlasını hesaplayamazlar. In the early days, switches were used to load ones or zeros into computer memory. The figure below, courtesy of Wikimedia Commons, shows an Altair 8800. The front panel switches were used to load in the program. The lights showed the output. There was no monitor. İlk zamanlarda, bilgisayarlara bir ve sıfırları yükleyebilmek için anahtarlar kullanılıyordu. Alttaki şekil, Wikimedia Commons'un izniyle, Altair 8800'ı göstermektedir. Düğmelerin her açılı/kapatılması bir sayıyla temsil edilir. Her sayı bilgisayara işlenmesi için bir veri veya talimat içerir. Sadece sıfır ve birlerden oluşan bu sistemler ikilik sayı sistemi olarak adlandırılır. Bu tür bilgisayar dili 1GL ya da birinci nesil programlama dili olarak adlandırılır. İkilik sistemde sayılar genellikle dörtlü gruplarla temsil edilir. Örneğin: Onaltılık(hegzadesimal) kodların kullanılmaya başlanması, programların anahtarlarla girilmesinde bir gelişme olmuştu. Onluk sayılar birçok insanın kullandığı 0-9 rakamlarını içerir. Onaltılık sayılar 0-9 sayılarını ve dört anahtarı veya 0-15 arası numaraları temsil etmek için A-F'yi içerir. Program girişini kolaylaştırma amacıyla, sonraki bilgisayarlarda programların assembly dili ile girilmesine izin verildi. Her komut bir hatırlatıcı kısaltma olarak kullanıldı ve derleyici adı verilen program hatırlatıcıları komut adı verilen sayılara dönüştürdü. Bu dil türüne 2GL veya ikinci nesil dil adı verildi. (Ç.N GL=Generation Language) Altta yer alan örnek bir assembly dili programıdır, Wikimedia Commons'un izniyle. Bu bir gelişme olduğu halde, programlamak hala pek de kolay değildi. Bir sonraki nesilde yer alan diller yüksek-seviye kısaltmalara izin verdi. İlk üçüncü nesil dillerde (COBOL, FORTRAN ve LISP) programlamak ve programı anlamak çok daha kolaydı. İkinci ve üçüncü nesil diller, derleyici adı verilen programları kullandı. Derleyici, kullanıcı tarafından yazılan programı (kaynak kodu adı verildi) alıp makine koduna dönüştürür. Programcı bunun ardından makine kodunu çalıştırır. Orijinal kaynak kodu çalışmaz. Programdaki kaynak kodu farklı parçalardan oluşuyorsa, bağ düzenleyici adı verilen program tarafından tek bir programa bağlanabilir. Bağ düzenleyici derleyici tarafından üretilen makine kodu üzerinde çalışır ve son bir program üretir. Bu son program kullanıcının çalıştırdığı programdır ve orijinal koda gerek duyulmaz. (Ç.N derleyici: compiler, bağ düzenleyici: linker) Makine diline derlemenin bir kötü yanı bu programların sadece özel makine türlerinde çalışmasıdır. Windows bilgisayarlar için derlenen programlar Apple Macintosh bilgisayarlarda ya da Linux bilgisayarlarda çalışmaz. Yeni programcılar için bütün derleme ve bağlama aşamaları karışık olabileceğinden, bazı diller onun yerine kodu yorumlayıcıları kullanarak çalıştırırlar. Bu programlar kaynak koduna bakar ve bu esnada onu makine kodu komutlarına yorumlarlar. Bu ayrıca aynı programın Windows, Mac ve Linux bilgisyarlarda çalışmasını sağlar. Her platform için yorumlayıcılar mevcuttur. Yorumlayıcı kullanmanın dezavantajı ise kodun makinenin ana dili yerine bir yorumlayıcı üzerinde çalışmasının daha yavaş olmasıdır. Python yorumlanan dillere bir örnektir. Python'da geliştirme yapmak C'den daha kolaydır, fakat Python daha yavaş çalışır ve programın çalışabilmesi için Python yorumlayıcısının bulunması şarttır. Java gibi diller asıl makine yerine Java Virtual Machine (JVM) üzerinde çalışan bir makine diline derlenen bir sistem kullanırlar. Bir başka popüler dil olan C#, bir Common Language Infrastructure (CLI) dilidir ve sanal makine üzerinde Virtual Execution System (VES) üzerinde çalışır. Bunlar hakkında tam bir tartışma bu kitabın konusunun ötesindedir. Ancak bunlar hakkında okumaya devam etmekte kendinizi özgür hissedin. Bugün birçok farklı programlama dili bulunmaktadır. Bilgisayarlar çok fazla değişik türde işler yaptıkları için farklı diller farklı işlerde özelleşebilmeleri için geliştirilmiştir. C gibi diller işletim sistemleri ve küçük gömülü bilgisayarlar için iyidir. PHP gibi diğer diller internet siteleri oluşturmak için özelleştirilmişlerdir. Python genel amaçlı olan ve kullanılması-kolay olması için özelleştirilen bir dildir. Tiobe firması farklı programlama dillerinin popülerliklerini kendi indexlerinde her ay güncelleyerek takip ediyor. Buraya bakmak iyi bir fikir olacaktır, ayrıca DICE gibi iş ilan sitelerine bakarak işverenlerin güncel olarak hangi dili bilen eleman aradıklarına ulaşabilirsiniz. Neyse ki neredeyse bütün diller aynı elementleri paylaşırlar, yani herhangi bir programlama dili bir kere öğrenildiğinde, aynı teoriler diğer dillere de uygulanacaktır. Bilgisayarın eğlenceli bir tarihi için, alttaki videoları izlemenizi ve takip etmenizi öneriyorum: Bu videolar Netflix, Amazon ve diğer yaygın kaynaklarda bulunabilir. Bunlar bütün ailenizin eğlenebileceği kadar eğlencelidir. Ben ayrıca eğer okumayı videodan daha çok tercih ediyorsanız Accidental Empires kitabını öneriyorum. 2.2 Tekrar Çoktan seçmeli tekrar quizi için buraya tıklayın.. - İkilik sistemde bir sayı örneği verin. ("1" gibi bir sayı ikilik, onluk ve onaltılık olabilirken, farklı tabanlardaki sayılar arasında yer alan farkları daha iyi örnekleyen örnekler bulmaya çalışın.) - Onluk sistemde bir sayı örneği verin. - Onaltılık sistemde bir sayı örneği verin. - 1, 10, 100, 1000 ve 10000 sayılarını ikilik sistemden onluk sisteme çevirin. - Derleyici nedir? - Kaynak kodu nedir? - Makine dili nedir? - Birinci nesil dil nedir? - İkinci nesil dil nedir? - Üçüncü nesil dil nedir? - Yorumlayıcı nedir? You are not logged in. Log in here and track your progress. English version by Paul Vincent Craven Spanish version by Antonio Rodríguez Verdugo Russian version by Vladimir Slav Turkish version by Güray Yildirim Portuguese version by Armando Marques Sobrinho and Tati Carvalho Dutch version by Frank Waegeman Hungarian version by Nagy Attila Finnish version by Jouko Järvenpää French version by Franco Rossi Korean version by Kim Zeung-Il Chinese version by Kai Lin