Senin, 11 April 2011

SEJARAH FOTRAN

Pada akhir 1953, John W. Backus mengajukan proposal kepada atasan di IBM untuk mengembangkan alternatif yang lebih praktis untuk bahasa assembly untuk pemrograman mereka IBM 704 mainframe komputer. Backus' historic FORTRAN team consisted of programmers Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt , Robert Nelson, Irving Ziller, Lois Haibt , and David Sayre. [ 3 ] bersejarah FORTRAN 'Tim Backus terdiri dari programmer Richard Goldberg, Sheldon F. Terbaik, Harlan Herrick, Peter Sheridan, Roy Nutt , Robert Nelson, Irving Ziller, Lois Haibt , dan David Sayre. [3]

A draft specification for The IBM Mathematical Formula Translating System was completed by mid-1954. Spesifikasi draft untuk Matematika IBM Formula Translating System selesai pada pertengahan 1954. The first manual for FORTRAN appeared in October 1956, with the first FORTRAN compiler delivered in April 1957. Manual pertama untuk FORTRAN muncul pada bulan Oktober 1956, dengan pertama FORTRAN compiler disampaikan pada bulan April 1957. This was an optimizing compiler , because customers were reluctant to use a high-level programming language unless its compiler could generate code whose performance was comparable to that of hand-coded assembly language . Ini merupakan kompiler mengoptimalkan , karena pelanggan enggan untuk menggunakan bahasa pemrograman tingkat-tinggi kecuali penyusunnya bisa menghasilkan kode yang kinerjanya sebanding dengan tangan-kode bahasa assembly .

While the community was skeptical that this new method could possibly out-perform hand-coding, it reduced the number of programming statements necessary to operate a machine by a factor of 20, and quickly gained acceptance. Sementara masyarakat merasa skeptis bahwa metode baru ini mungkin bisa keluar-melakukan hand-coding, ia mengurangi jumlah program laporan yang diperlukan untuk mengoperasikan mesin dengan faktor 20, dan cepat memperoleh penerimaan. Said creator John Backus during a 1979 interview with Think, the IBM employee magazine, "Much of my work has come from being lazy. I didn't like writing programs, and so, when I was working on the IBM 701 , writing programs for computing missile trajectories, I started work on a programming system to make it easier to write programs." [ 4 ] pencipta Said John Backus selama wawancara 1979 dengan Pikirkan, karyawan IBM majalah, "Banyak pekerjaan saya telah datang dari malas itu. Saya tidak suka menulis program, dan sebagainya, ketika saya bekerja di IBM 701 , menulis program untuk komputasi lintasan rudal, saya mulai bekerja pada sistem pemrograman untuk membuatnya lebih mudah untuk menulis program ". [4]

The language was widely adopted by scientists for writing numerically intensive programs, which encouraged compiler writers to produce compilers that could generate faster and more efficient code. Bahasa diadopsi secara luas oleh para ilmuwan untuk menulis program numerik yang intensif, yang mendorong penulis compiler untuk menghasilkan compiler yang dapat menghasilkan kode yang lebih cepat dan lebih efisien. The inclusion of a complex number data type in the language made Fortran especially suited to technical applications such as electrical engineering. Yang dimasukkan bilangan kompleks tipe data dalam bahasa membuat Fortran sangat cocok untuk aplikasi teknis seperti teknik listrik.

By 1960, versions of FORTRAN were available for the IBM 709 , 650 , 1620 , and 7090 computers. Pada 1960, versi FORTRAN yang tersedia untuk IBM 709 , 650 , 1620 , dan 7090 komputer. Significantly, the increasing popularity of FORTRAN spurred competing computer manufacturers to provide FORTRAN compilers for their machines, so that by 1963 over 40 FORTRAN compilers existed. Secara signifikan, meningkatnya popularitas FORTRAN memacu produsen komputer berlomba-lomba memberikan FORTRAN compiler untuk mesin mereka, sehingga pada 1963 lebih dari 40 FORTRAN compiler ada. For these reasons, FORTRAN is considered to be the first widely used programming language supported across a variety of computer architectures. Untuk alasan ini, FORTRAN dianggap secara luas digunakan pertama pemrograman bahasa yang didukung di berbagai arsitektur komputer.

The development of FORTRAN paralleled the early evolution of compiler technology ; indeed many advances in the theory and design of compilers were specifically motivated by the need to generate efficient code for FORTRAN programs. Pengembangan FORTRAN sejajar dengan evolusi awal teknologi compiler , memang banyak kemajuan dalam teori dan desain kompiler secara khusus termotivasi oleh kebutuhan untuk menghasilkan kode yang efisien untuk program FORTRAN.

[ edit ] FORTRAN [ sunting ] FORTRAN

The initial release of FORTRAN for the IBM 704 contained 32 statements , including: Rilis awal FORTRAN untuk IBM 704 berisi 32 laporan , termasuk:

  • DIMENSION and EQUIVALENCE statements DIMENSION dan EQUIVALENCE laporan
  • Assignment statements Laporan Penugasan
  • Three-way arithmetic IF statement. [ note 4 ] Tiga-cara aritmatika IF pernyataan. [catatan 4]
  • IF statements for checking exceptions ( ACCUMULATOR OVERFLOW , QUOTIENT OVERFLOW , and DIVIDE CHECK ); and IF statements for manipulating sense switches and sense lights IF laporan untuk memeriksa pengecualian ( ACCUMULATOR OVERFLOW , QUOTIENT OVERFLOW , dan DIVIDE CHECK ), dan IF laporan untuk memanipulasi switch akal dan rasa lampu
  • GOTO , computed GOTO , ASSIGN , and assigned GOTO GOTO , yang dihitung GOTO , ASSIGN , dan ditugaskan GOTO
  • DO loops DO loop
  • Formatted I/O: FORMAT , READ , READ INPUT TAPE , WRITE , WRITE OUTPUT TAPE , PRINT , and PUNCH Diformat I / O: FORMAT , READ , READ INPUT TAPE , WRITE , WRITE OUTPUT TAPE , PRINT , dan PUNCH
  • Unformatted I/O: READ TAPE , READ DRUM , WRITE TAPE , and WRITE DRUM Terformat I / O: READ TAPE , READ DRUM , WRITE TAPE , dan WRITE DRUM
  • Other I/O: END FILE , REWIND , and BACKSPACE Lain I / O: END FILE , REWIND , dan BACKSPACE
  • PAUSE , STOP , and CONTINUE PAUSE , STOP , dan CONTINUE
  • FREQUENCY statement (for providing optimization hints to the compiler). [ note 5 ] FREQUENCY pernyataan (untuk memberikan optimasi petunjuk untuk compiler). [catatan 5]
FORTRAN code on a punched card , showing the specialized uses of columns 1-5, 6 and 73-80. FORTRAN kode pada kartu menekan , menunjukkan penggunaan khusus kolom 1-5, 6 dan 73-80.

Before the development of disk files, text editors and terminals, programs were most often entered on a keypunch keyboard onto 80 column punched cards, one line to a card, which would be fed into a card reader in a batch. Sebelum pengembangan file disk, editor teks dan terminal, program yang paling sering dimasukkan pada keypunch keyboard ke 80 kolom kartu menekan, satu baris untuk kartu, yang akan dimasukkan ke card reader di batch. Originally programs were written in a "fixed" column format. Awalnya program ditulis dalam format "tetap" kolom. Column 1 was the comment field, a letter C caused the entire card to be ignored by the compiler. Kolom 1 adalah kolom komentar, surat C menyebabkan seluruh kartu akan diabaikan oleh compiler. Columns 2 to 5 were the label field: a sequence of digits here was taken as a label for the purpose of a GOTO or a FORMAT reference in a WRITE or READ statement. Kolom 2 sampai 5 adalah kolom label: urutan digit di sini diambil sebagai label untuk tujuan suatu GOTO atau referensi FORMAT dalam BACA TULIS atau pernyataan. Column 6 was a continuation field: a non-blank character here caused the card to be taken as a continuation of the statement on the previous card. Kolom 6 adalah kelanjutan bidang: karakter non-blank sini menyebabkan kartu yang akan diambil sebagai kelanjutan dari pernyataan pada kartu sebelumnya. Columns 73 to 80 were ignored, so they were reserved for punching a sequence number which in theory could be used to re-order cards if a stack of cards was dropped, though in practice these were rarely so punched as re-assembling a stack would have to be done manually. Kolom 73 sampai dengan 80 diabaikan, jadi mereka dicadangkan untuk memukul nomor urutan yang secara teori dapat digunakan untuk kartu ulang pesanan jika setumpuk kartu dijatuhkan, meskipun dalam prakteknya ini jarang sehingga menekan seperti kembali merakit stack akan harus dilakukan secara manual. Columns 7 to 72 served as the statement field. Kolom 7-72 ​​menjabat sebagai bidang pernyataan. Later compilers relaxed these restrictions. Kemudian kompiler santai pembatasan ini.

Early FORTRAN compilers did not support recursion in subroutines. Awal FORTRAN compiler tidak mendukung rekursi dalam subrutin. Early computer architectures did not support the concept of a stack, and when they did directly support subroutine calls, the return location was often stored in a single fixed location adjacent to the subroutine code, which does not permit a subroutine to be called again before a previous call of the subroutine has returned. Awal arsitektur komputer tidak mendukung konsep stack, dan ketika mereka melakukannya secara langsung mendukung panggilan subrutin, lokasi kembali sering ditempatkan di lokasi yang tetap tunggal berdekatan dengan kode subroutine, yang tidak mengizinkan subrutin yang akan dipanggil lagi sebelum panggilan sebelumnya subrutin telah kembali. Although not specified in Fortran 77, many F77 compilers supported recursion as an option, while it became a standard in Fortran 90. [ 5 ] Meskipun tidak ditentukan dalam Fortran 77, banyak F77 kompiler didukung rekursi sebagai pilihan, sementara itu menjadi standar dalam Fortran 90. [5]

[ edit ] IBM 1401 FORTRAN [ sunting ] IBM 1401 FORTRAN

FORTRAN was provided for the IBM 1401 by an innovative 63-pass compiler that ran in only 8k of core . FORTRAN diberikan untuk IBM 1401 oleh compiler 63-pass inovatif yang berlari hanya 8k dari inti . It kept the program in memory and loaded overlays that gradually transformed it, in place, into executable form, as described by Haines et al. [ 6 ] The executable form was not machine language ; rather it was interpreted, anticipating UCSD Pascal P-code by two decades. Itu terus program di memori dan dimuat lapisan yang secara bertahap berubah itu, di tempat, ke bentuk yang dapat dijalankan, seperti yang dijelaskan oleh Haines et al. [6] Bentuk eksekusi tidak bahasa mesin , melainkan hal itu ditafsirkan, mengantisipasi Pascal UCSD P-code oleh dua dekade.

[ edit ] FORTRAN II [ sunting ] FORTRAN II

IBM's FORTRAN II appeared in 1958. IBM FORTRAN II muncul pada tahun 1958. The main enhancement was to support procedural programming by allowing user-written subroutines and functions which returned values, with parameters passed by reference . Peningkatan utama adalah untuk mendukung pemrograman prosedural dengan memungkinkan pengguna ditulis subrutin dan fungsi yang kembali nilai-nilai, dengan parameter yang dikirimkan oleh referensi . The COMMON statement provided a way for subroutines to access common (or global ) variables. Pernyataan UMUM memberikan jalan bagi subrutin untuk akses umum (atau global ) variabel. Six new statements were introduced: Enam laporan baru diperkenalkan:

  • SUBROUTINE , FUNCTION , and END SUBROUTINE , FUNCTION , dan END
  • CALL and RETURN CALL dan RETURN
  • COMMON

Over the next few years, FORTRAN II would also add support for the DOUBLE PRECISION and COMPLEX data types. Selama beberapa tahun ke depan, FORTRAN II juga akan menambahkan dukungan untuk DOUBLE PRECISION dan COMPLEX tipe data.

[ edit ] Simple FORTRAN II program [ sunting ] Wikipedia II program FORTRAN

This program, for Heron's formula , reads one data card containing three 5-digit integers A, B, and C as input. Program ini, untuk itu rumus Heron , membaca satu kartu data yang berisi tiga digit bilangan bulat 5 A, B, dan C sebagai input. If A, B, and C cannot represent the sides of a triangle in plane geometry, then the program's execution will end with an error code of "STOP 1". Jika A, B, dan C tidak dapat mewakili sisi segitiga dalam geometri pesawat, maka eksekusi program akan berakhir dengan kode kesalahan "1 STOP". Otherwise, an output line will be printed showing the input values for A, B, and C, followed by the computed AREA of the triangle as a floating-point number with 2 digits after the decimal point. Jika tidak, sebuah jalur output akan dicetak menunjukkan nilai input untuk A, B, dan C, diikuti oleh AREA dihitung dari segitiga sebagai angka floating-point dengan 2 digit setelah titik desimal.

C AREA OF A TRIANGLE WITH A STANDARD SQUARE ROOT FUNCTION C DAERAH SEGITIGA A DENGAN FUNGSI AKAR SQUARE STANDAR
C INPUT - CARD READER UNIT 5, INTEGER INPUT C INPUT - CARD READER 5 UNIT, INPUT INTEGER
C OUTPUT - LINE PRINTER UNIT 6, REAL OUTPUT C OUTPUT - LINE PRINTER 6 UNIT, OUTPUT REAL
C INPUT ERROR DISPLAY ERROR OUTPUT CODE 1 IN JOB CONTROL LISTING C INPUT ERROR ERROR OUTPUT DISPLAY KODE 1 DI JOB LISTING CONTROL
READ INPUT TAPE 5 , 501 , IA, IB, IC BACA TAPE INPUT 5, 501, IA, IB, IC
501 FORMAT ( 3I5 ) 501 FORMAT (3I5)
C IA, IB, AND IC MAY NOT BE NEGATIVE C IA, IB, DAN IC TIDAK BOLEH NEGATIF
C FURTHERMORE, THE SUM OF TWO SIDES OF A TRIANGLE C Selanjutnya, SUM DUA SISI DARI SEGITIGA A
C IS GREATER THAN THE THIRD SIDE, SO WE CHECK FOR THAT, TOO C lebih besar dari SISI KETIGA, SEHINGGA KITA PERIKSA UNTUK ITU, TERLALU
IF ( IA ) 777, 777, 701 IF (IA) 777 777,, 701
701 IF ( IB ) 777, 777, 702 701 IF (IB) 777, 777, 702
702 IF ( IC ) 777, 777, 703 702 IF (IC) 777, 777, 703
703 IF ( IA + IB - IC ) 777,777,704 703 IF (IA + IB - IC) 777777704
704 IF ( IA + IC - IB ) 777,777,705 704 IF (IA + IC - IB) 777777705
705 IF ( IB + IC - IA ) 777,777,799 705 IF (IB + IC - IA) 777777799
777 STOP 1 777 STOP 1
C USING HERON'S FORMULA WE CALCULATE THE MENGGUNAKAN FORMULA C'S Heron KAMI HITUNG ATAS
C AREA OF THE TRIANGLE C DAERAH SEGITIGA ATAS
799 S = FLOATF ( IA + IB + IC ) / 2.0 799 S = FLOATF (IA + IB + IC) / 2.0
AREA = SQRT ( S * ( S - FLOATF ( IA ) ) * ( S - FLOATF ( IB ) ) * AREA = sqrt (S * (S - FLOATF (IA)) * (S - FLOATF (IB)) *
+ ( S - FLOATF ( IC ) ) ) + (S - FLOATF (IC)))
WRITE OUTPUT TAPE 6, 601, IA, IB, IC, AREA TULIS OUTPUT TAPE 6, 601, IA, IB, IC, AREA
601 FORMAT ( 4H A = ,I5,5H B = ,I5,5H C = ,I5,8H AREA = ,F10.2, 601 FORMAT (4H A, = I5, 5H B =, i5, 5H C =, i5, 8H AREA =, F10.2,
+ 13H SQUARE UNITS ) + 13h UNIT SQUARE)
STOP STOP
END AKHIR

[ edit ] FORTRAN III [ sunting ] FORTRAN III

A FORTRAN coding form, formerly printed on paper and intended to be used by programmers to prepare programs for punching onto cards by keypunch operators. Sebuah bentuk pengkodean FORTRAN, sebelumnya dicetak di atas kertas dan dimaksudkan untuk digunakan oleh programmer untuk menyiapkan program untuk meninju ke kartu oleh keypunch operator. Now obsolete. Sekarang usang.

IBM also developed a FORTRAN III in 1958 that allowed for inline assembler code among other features; however, this version was never released as a product. IBM juga mengembangkan FORTRAN III pada tahun 1958 yang diperbolehkan untuk kode assembler inline antara fitur-fitur lain, namun versi ini tidak pernah dirilis sebagai produk. Like the 704 FORTRAN and FORTRAN II, FORTRAN III included machine-dependent features that made code written in it unportable from machine to machine. Seperti 704 FORTRAN dan FORTRAN II, FORTRAN III termasuk mesin-tergantung fitur yang membuat kode yang ditulis di dalamnya unportable dari mesin ke mesin. Early versions of FORTRAN provided by other vendors suffered from the same disadvantage. Awal versi FORTRAN yang diberikan oleh vendor lainnya menderita dari kerugian yang sama.

[ edit ] FORTRAN IV [ sunting ] FORTRAN IV

Starting in 1961, as a result of customer demands, IBM began development of a FORTRAN IV that removed the machine-dependent features of FORTRAN II (such as READ INPUT TAPE ), while adding new features such as a LOGICAL data type, logical Boolean expressions and the logical IF statement as an alternative to the arithmetic IF statement. FORTRAN IV was eventually released in 1962, first for the IBM 7030 ("Stretch") computer, followed by versions for the IBM 7090 and IBM 7094 . Mulai tahun 1961, sebagai akibat dari tuntutan pelanggan, IBM memulai pengembangan FORTRAN IV yang dihapus bergantung pada fitur mesin FORTRAN II (seperti READ INPUT TAPE ), sambil menambahkan fitur baru seperti LOGICAL tipe data, logis ekspresi Boolean dan logis JIKA pernyataan sebagai alternatif dari aritmatika IF pernyataan itu. FORTRAN IV akhirnya dibebaskan pada tahun 1962, pertama untuk IBM 7030 ("Stretch") komputer, diikuti oleh versi untuk IBM 7090 dan IBM 7094 .

By 1965, Fortran IV was supposed to be the "standard" and in compliance with American Standards Association X3.4.3 FORTRAN Working Group. [ 7 ] Pada tahun 1965, Fortran IV seharusnya menjadi "standar" dan sesuai dengan American Standards Association X3.4.3 FORTRAN Kelompok Kerja. [7]

[ edit ] FORTRAN 66 [ sunting ] FORTRAN 66

Perhaps the most significant development in the early history of FORTRAN was the decision by the American Standards Association (now ANSI ) to form a committee to develop an "American Standard Fortran." Mungkin perkembangan yang paling signifikan dalam sejarah awal FORTRAN adalah keputusan oleh American Standards Association (sekarang ANSI ) untuk membentuk sebuah komite untuk mengembangkan sebuah "American Standard Fortran." The resulting two standards, approved in March 1966, defined two languages, FORTRAN (based on FORTRAN IV, which had served as a de facto standard), and Basic FORTRAN (based on FORTRAN II, but stripped of its machine-dependent features). Kedua standar yang dihasilkan, disetujui pada Maret 1966, ditetapkan dua bahasa, FORTRAN (berdasarkan FORTRAN IV, yang pernah menjabat sebagai standar de facto), dan Basic FORTRAN (berdasarkan FORTRAN II, tetapi dilucuti mesin-tergantung fitur-fiturnya). The FORTRAN defined by the first standard became known as FORTRAN 66 (although many continued to refer to it as FORTRAN IV, the language upon which the standard was largely based). The FORTRAN didefinisikan oleh standar pertama kali dikenal sebagai FORTRAN 66 (meskipun banyak terus menyebut sebagai FORTRAN IV, bahasa atas yang standar sebagian besar didasarkan). FORTRAN 66 effectively became the first "industry-standard" version of FORTRAN. FORTRAN 66 efektif menjadi yang pertama "industri-standar" versi FORTRAN. FORTRAN 66 included: FORTRAN 66 meliputi:

  • Main program, SUBROUTINE , FUNCTION , and BLOCK DATA program units Utama program, SUBROUTINE , FUNCTION , dan BLOCK DATA unit program
  • INTEGER , REAL , DOUBLE PRECISION , COMPLEX , and LOGICAL data types INTEGER , REAL , DOUBLE PRECISION , COMPLEX , dan LOGICAL tipe data
  • COMMON , DIMENSION , and EQUIVALENCE statements COMMON , DIMENSION , dan EQUIVALENCE laporan
  • DATA statement for specifying initial values DATA pernyataan untuk menentukan nilai awal
  • Intrinsic and EXTERNAL ( eg, library) functions Intrinsik dan EXTERNAL (misalnya, perpustakaan) fungsi
  • Assignment statement Pernyataan Penugasan
  • GOTO , assigned GOTO , and computed GOTO statements GOTO , ditugaskan GOTO , dan dihitung GOTO laporan
  • Logical IF and arithmetic (three-way) IF statements Logical IF dan aritmatika (tiga-arah) IF laporan
  • DO loops DO loop
  • READ , WRITE , BACKSPACE , REWIND , and ENDFILE statements for sequential I/O READ , WRITE , BACKSPACE , REWIND , dan ENDFILE laporan untuk sekuensial I / O
  • FORMAT statement FORMAT pernyataan
  • CALL , RETURN , PAUSE , and STOP statements CALL , RETURN , PAUSE , dan STOP laporan
  • Hollerith constants in DATA and FORMAT statements, and as actual arguments to procedures Hollerith konstanta di DATA dan FORMAT pernyataan, dan sebagai argumen aktual dengan prosedur
  • Identifiers of up to six characters in length Pengidentifikasi sampai enam karakter
  • Comment lines Komentar baris

[ edit ] FORTRAN 77 [ sunting ] FORTRAN 77

After the release of the FORTRAN 66 standard, compiler vendors introduced a number of extensions to "Standard Fortran", prompting ANSI in 1969 to begin work on revising the 1966 standard. Setelah merilis standar 66 FORTRAN, vendor compiler memperkenalkan sejumlah ekstensi untuk "Standard Fortran", mendorong ANSI pada tahun 1969 untuk mulai bekerja pada merevisi standar 1966. Final drafts of this revised standard circulated in 1977, leading to formal approval of the new FORTRAN standard in April 1978. Final draf standar revisi ini beredar pada tahun 1977, yang mengarah ke persetujuan formal dari standar FORTRAN baru pada bulan April 1978. The new standard, known as FORTRAN 77 , added a number of significant features to address many of the shortcomings of FORTRAN 66: Standar baru, yang dikenal sebagai FORTRAN 77, menambahkan sejumlah fitur yang signifikan untuk mengatasi banyak kekurangan FORTRAN 66:

  • Block IF and END IF statements, with optional ELSE and ELSE IF clauses, to provide improved language support for structured programming Blok IF dan END IF laporan, dengan opsional ELSE dan ELSE IF klausa, untuk memberikan dukungan bahasa lebih baik untuk pemrograman terstruktur
  • DO loop extensions, including parameter expressions, negative increments, and zero trip counts DO ekstensi loop, termasuk ekspresi parameter, kenaikan negatif, dan nol perjalanan jumlah
  • OPEN , CLOSE , and INQUIRE statements for improved I/O capability OPEN , CLOSE , dan INQUIRE laporan untuk meningkatkan I / O kemampuan
  • Direct-access file I/O Direct-akses file I / O
  • IMPLICIT statement IMPLICIT pernyataan
  • CHARACTER data type, with vastly expanded facilities for character input and output and processing of character-based data CHARACTER tipe data, dengan memperluas fasilitas jauh untuk input karakter dan output dan pengolahan data berbasis karakter
  • PARAMETER statement for specifying constants PARAMETER pernyataan untuk menentukan konstanta
  • SAVE statement for persistent local variables SAVE pernyataan untuk variabel lokal persisten
  • Generic names for intrinsic functions Nama generik untuk fungsi intrinsik
  • A set of intrinsics ( LGE, LGT, LLE, LLT ) for lexical comparison of strings, based upon the ASCII collating sequence. Satu set intrinsik ( LGE, LGT, LLE, LLT ) untuk perbandingan leksikal string, berdasarkan ASCII urutan collation.
(ASCII functions were demanded by the US Department of Defense , in their conditional approval vote.) (Fungsi ASCII dituntut oleh Departemen Pertahanan AS , dalam suara persetujuan bersyarat mereka.)

In this revision of the standard, a number of features were removed or altered in a manner that might invalidate previously standard-conforming programs. (Removal was the only allowable alternative to X3J3 at that time, since the concept of "deprecation" was not yet available for ANSI standards.) While most of the 24 items in the conflict list (see Appendix A2 of X3.9-1978) addressed loopholes or pathological cases permitted by the previous standard but rarely used, a small number of specific capabilities were deliberately removed, such as: Dalam revisi standar, sejumlah fitur telah dihapus atau diubah dengan cara yang mungkin membatalkan sesuai standar-program yang pernah ". (Removal hanya diijinkan alternatif untuk X3J3 bahwa pada waktu, karena konsep" kutukan belum tersedia untuk standar ANSI daftar.) Sementara sebagian besar dari 24 item dalam konflik (lihat Lampiran A2 X3.9-1978) celah ditujukan atau kasus patologis diijinkan oleh standar sebelumnya tetapi jarang digunakan, sejumlah kecil kemampuan spesifik sengaja dihapus , seperti:

GREET = 12HHELLO THERE! SAMBUT = 12HHELLO ADA!
  • Reading into a H edit (Hollerith field) descriptor in a FORMAT specification. Membaca menjadi sebuah deskriptor H mengedit (Hollerith lapangan) dalam spesifikasi FORMAT.
  • Overindexing of array bounds by subscripts. Overindexing batas array dengan subscript.
DIMENSION A(10,5)
Y= A(11,1)
  • Transfer of control into the range of a DO loop (also known as "Extended Range"). Pengalihan kendali ke berbagai loop DO (juga dikenal sebagai "Extended Range").

[ edit ] Variants: Minnesota FORTRAN [ sunting ] Varian: Minnesota FORTRAN

Control Data Corporation computers had another version of FORTRAN 77, called Minnesota FORTRAN (MNF), designed especially for student use, with variations in output constructs, special uses of COMMONs and DATA statements, optimizations code levels for compiling, and detailed error listings, extensive warning messages, and debugs. [ 8 ] Control Data Corporation komputer memiliki versi lain FORTRAN 77, yang disebut Minnesota FORTRAN (MNF), yang dirancang khusus untuk digunakan siswa, dengan variasi dalam output konstruksi, menggunakan khusus dan laporan DATA Commons, optimasi kode tingkat untuk mengkompilasi, dan daftar kesalahan rinci, luas pesan peringatan, dan debugs. [8]

[ edit ] Transition to ANSI Standard Fortran [ sunting ] Transisi ke Standar ANSI Fortran

The development of a revised standard to succeed FORTRAN 77 would be repeatedly delayed as the standardization process struggled to keep up with rapid changes in computing and programming practice. Pengembangan standar revisi untuk berhasil FORTRAN 77 akan berulang kali tertunda sebagai proses standarisasi berjuang untuk mengikuti perubahan yang cepat dalam komputasi dan praktek pemrograman. In the meantime, as the "Standard FORTRAN" for nearly fifteen years, FORTRAN 77 would become the historically most important dialect. Sementara itu, sebagai "Standar FORTRAN" selama hampir lima belas, FORTRAN 77 akan menjadi dialek historis paling penting.

An important practical extension to FORTRAN 77 was the release of MIL-STD-1753 in 1978. [ 9 ] This specification, developed by the US Department of Defense , standardized a number of features implemented by most FORTRAN 77 compilers but not included in the ANSI FORTRAN 77 standard. Perpanjangan praktis yang penting untuk FORTRAN 77 adalah rilis MIL-STD-1.753 pada tahun 1978. [9] Spesifikasi ini, yang dikembangkan oleh Departemen Pertahanan AS , standar sejumlah fitur diimplementasikan oleh sebagian besar kompiler FORTRAN 77 tetapi tidak termasuk dalam ANSI FORTRAN 77 standar. These features would eventually be incorporated into the Fortran 90 standard. Fitur-fitur ini akhirnya akan dimasukkan ke dalam standar 90 Fortran.

The IEEE 1003.9 POSIX Standard, released in 1991, provided a simple means for FORTRAN 77 programmers to issue POSIX system calls. [ 10 ] Over 100 calls were defined in the document — allowing access to POSIX-compatible process control, signal handling, file system control, device control, procedure pointing, and stream I/O in a portable manner. The IEEE 1003,9 POSIX Standar, dirilis pada tahun 1991, disediakan sarana sederhana untuk FORTRAN 77 programmer untuk menerbitkan sistem panggilan POSIX. [10] Lebih dari 100 panggilan yang didefinisikan dalam dokumen - memungkinkan akses ke kompatibel proses kontrol-POSIX, penanganan sinyal, sistem file kontrol, kontrol perangkat, prosedur menunjuk, dan streaming I / O secara portabel.

[ edit ] Fortran 90 [ sunting ] Fortran 90

The much delayed successor to FORTRAN 77, informally known as Fortran 90 (and prior to that, Fortran 8X ), was finally released as an ISO standard in 1991 and an ANSI Standard in 1992. Penerus banyak tertunda FORTRAN 77, informal dikenal sebagai Fortran 90 (dan sebelum itu, Fortran 8X), akhirnya dirilis sebagai standar ISO pada tahun 1991 dan Standar ANSI pada tahun 1992. This major revision added many new features to reflect the significant changes in programming practice that had evolved since the 1978 standard: Ini revisi besar ditambahkan banyak fitur baru untuk mencerminkan perubahan yang signifikan dalam praktek pemrograman yang telah berevolusi sejak standar 1978:

  • Free-form source input , also with lowercase Fortran keywords Free-bentuk sumber input , juga dengan kata kunci Fortran kecil
  • Identifiers up to 31 characters in length Pengenal sampai dengan 31 karakter panjangnya
  • Inline comments Inline komentar
  • Ability to operate on arrays (or array sections) as a whole, thus greatly simplifying math and engineering computations. Kemampuan untuk beroperasi pada array (array atau bagian) secara keseluruhan, sehingga sangat menyederhanakan perhitungan matematika dan rekayasa.
    • whole, partial and masked array assignment statements and array expressions, such as X(1:N)=R(1:N)*COS(A(1:N)) keseluruhan, bertopeng array tugas laporan dan parsial dan ekspresi array, seperti X(1:N)=R(1:N)*COS(A(1:N))
    • WHERE statement for selective array assignment WHERE pernyataan untuk penugasan array selektif
    • array-valued constants and expressions, array konstanta bernilai dan ekspresi,
    • user-defined array-valued functions and array constructors. array ditetapkan pengguna bernilai fungsi dan konstruktor array.
  • RECURSIVE procedures RECURSIVE prosedur
  • Modules , to group related procedures and data together, and make them available to other program units, including the capability to limit the accessibility to only specific parts of the module. Modul , untuk kelompok terkait prosedur dan data bersama-sama, dan membuatnya tersedia untuk unit program lainnya, termasuk kemampuan untuk membatasi aksesibilitas hanya bagian tertentu dari modul.
  • A vastly improved argument-passing mechanism, allowing interfaces to be checked at compile time Sebuah perbaikan argumen jauh-passing mekanisme, yang memungkinkan interface untuk diperiksa pada waktu kompilasi
  • User-written interfaces for generic procedures User-ditulis interface untuk prosedur generik
  • Operator overloading Operator overloading
  • Derived/ abstract data types Berasal / abstrak tipe data
  • New data type declaration syntax, to specify the data type and other attributes of variables Data baru tipe deklarasi sintaks, untuk menentukan tipe data dan atribut lainnya dari variabel
  • Dynamic memory allocation by means of the ALLOCATABLE attribute and the ALLOCATE and DEALLOCATE statements Alokasi memori dinamis dengan cara dari ALLOCATABLE atribut dan ALLOCATE dan DEALLOCATE laporan
  • POINTER attribute, pointer assignment, and NULLIFY statement to facilitate the creation and manipulation of dynamic data structures POINTER atribut, penempatan penunjuk, dan NULLIFY pernyataan untuk memfasilitasi penciptaan dan manipulasi dinamis struktur data
  • Structured looping constructs, with an END DO statement for loop termination, and EXIT and CYCLE statements for "breaking out" of normal DO loop iterations in an orderly way konstruksi looping terstruktur, dengan END DO pernyataan untuk terminasi loop, dan EXIT dan CYCLE laporan untuk "melanggar" normal DO iterasi loop dalam cara yang teratur
  • SELECT . SELECT . . . . CASE construct for multi-way selection . CASE membangun untuk multi-cara seleksi
  • Portable specification of numerical precision under the user's control Portable spesifikasi presisi numerik di bawah kontrol pengguna
  • New and enhanced intrinsic procedures. Baru dan prosedur intrinsik ditingkatkan.
[ edit ] Obsolescence and deletions [ sunting ] keusangan dan penghapusan

Unlike the previous revision, Fortran 90 did not delete any features. (Appendix B.1 says, "The list of deleted features in this standard is empty.") Any standard-conforming FORTRAN 77 program is also standard-conforming under Fortran 90, and either standard should be usable to define its behavior. Berbeda dengan revisi sebelumnya, Fortran 90 tidak menghapus fitur). (Lampiran B.1 mengatakan, "Daftar dihapus dari fitur ini dalam standar adalah kosong." Ada standar-sesuai FORTRAN 77 Program juga standar-sesuai di bawah Fortran 90, dan standar baik harus dapat digunakan untuk menentukan perilakunya.

A small set of features were identified as "obsolescent" and expected to be removed in a future standard. Satu set kecil fitur diidentifikasi sebagai "usang" dan diharapkan akan dihapus dalam standar masa depan.

Obsolescent feature Fitur usang Example Contoh Status / Fate in Fortran 95 Status / Nasib di Fortran 95
Arithmetic IF-statement Aritmetika IF-pernyataan IF (X) 10, 20, 30
Non-integer DO parameters or control variables Non-integer DO parameter atau variabel kontrol yang DO 9 X= 1.7, 1.6, -0.1 Deleted Dihapus
Shared DO-loop termination or Shared DO-loop pemutusan hubungan kerja atau
termination with a statement pemutusan hubungan dengan pernyataan
other than END DO or CONTINUE selain AKHIR DO atau BERLANJUT
DO 9 J= 1, 10

DO 9 K= 1, 10
9 L= J + K

Branching to END IF Bercabang untuk END IF

from outside a block dari luar blok

66 GO TO 77 ; . . .

IF (E) THEN ; . . .
77 END IF

Deleted Dihapus
Alternate return Alternate kembali CALL SUBR( X, Y *100, *200 )
PAUSE statement PAUSE pernyataan PAUSE 600 Deleted Dihapus
ASSIGN statement BERI pernyataan
and assigned GO TO statement dan ditugaskan pernyataan GO TO
100 . . .

ASSIGN 100 TO H
. . .
GO TO H . . .

Deleted Dihapus
Assigned FORMAT specifiers Ditugaskan FORMAT penspesifikasi ASSIGN F TO 606 Deleted Dihapus
H edit descriptors H mengedit deskriptor 606 FORMAT ( 9H1GOODBYE. ) Deleted Dihapus
Computed GO TO statement Dihitung GO TO pernyataan GO TO (10, 20, 30, 40), index (Obso.) (Obso.)
Statement functions Pernyataan fungsi FOIL( X, Y )= X**2 + 2*X*Y + Y**2 (Obso.) (Obso.)
DATA statements DATA laporan
among executable statements antara laporan executable
X= 27.3

DATA A, B, C / 5.0, 12.0. 13.0 / . . .

(Obso.) (Obso.)
CHARACTER* form of CHARACTER declaration KARAKTER * bentuk deklarasi KARAKTER CHARACTER*8 STRING ! Use CHARACTER(8) (Obso.) (Obso.)
Assumed character length functions panjang karakter Asumsi fungsi
Fixed form source code Tetap bentuk kode sumber * Column 1 contains * or ! * Kolom 1 berisi * atau! or C for comments. atau C untuk komentar.
C Column 6 for continuation. C Kolom 6 untuk kelanjutan.

[ edit ] Fortran 95 [ sunting ] Fortran 95

Fortran 95 was a minor revision, mostly to resolve some outstanding issues from the Fortran 90 standard. Fortran 95 merupakan revisi kecil, sebagian besar untuk menyelesaikan beberapa isu yang beredar dari standar 90 Fortran. Nevertheless, Fortran 95 also added a number of extensions, notably from the High Performance Fortran specification: Namun demikian, Fortran 95 juga menambahkan sejumlah ekstensi, terutama dari High Performance Fortran spesifikasi:

  • FORALL and nested WHERE constructs to aid vectorization FORALL dan bersarang WHERE konstruksi untuk membantu vektorisasi
  • User-defined PURE and ELEMENTAL procedures User-defined PURE dan ELEMENTAL prosedur
  • Default initialization of derived type components, including pointer initialization Default inisialisasi komponen tipe turunan, termasuk inisialisasi pointer
  • Expanded the ability to use initialization expressions for data objects Memperluas kemampuan untuk menggunakan ekspresi inisialisasi untuk objek data
  • Clearly defined that ALLOCATABLE arrays are automatically deallocated when they go out of scope. Jelas bahwa ALLOCATABLE array secara otomatis deallocated ketika mereka keluar dari ruang lingkup.

A number of intrinsic functions were extended (for example a dim argument was added to the maxloc intrinsic). Sejumlah fungsi intrinsik yang diperpanjang (misalnya dim argumen ditambahkan ke maxloc intrinsik).

Several features noted in Fortran 90 to be deprecated were removed from Fortran 95: Beberapa fitur dicatat dalam Fortran 90 yang akan ditinggalkan telah dihapus dari Fortran 95:

  • DO statements using REAL and DOUBLE PRECISION variables DO laporan menggunakan REAL dan DOUBLE PRECISION variabel
  • Branching to an END IF statement from outside its block Bercabang ke END IF pernyataan dari luar blok nya
  • PAUSE statement PAUSE pernyataan
  • ASSIGN and assigned GOTO statement, and assigned format specifiers ASSIGN dan ditugaskan GOTO pernyataan, dan ditugaskan format specifier
  • H edit descriptor. H sunting deskripsi.

An important supplement to Fortran 95 was the ISO technical report TR-15581: Enhanced Data Type Facilities , informally known as the Allocatable TR. This specification defined enhanced use of ALLOCATABLE arrays, prior to the availability of fully Fortran 2003-compliant Fortran compilers. Sebuah suplemen penting untuk Fortran 95 adalah laporan teknis ISO TR-15581: Data Jenis Fasilitas, informal dikenal sebagai DIALOKASIKAN. TR Enhanced Spesifikasi ini didefinisikan menggunakan ditingkatkan ALLOCATABLE array, sebelum ketersediaan sepenuhnya kompatibel Fortran Fortran compiler-2003. Such uses include ALLOCATABLE arrays as derived type components, in procedure dummy argument lists, and as function return values. menggunakan tersebut termasuk ALLOCATABLE array sebagai komponen tipe turunan, di dummy daftar argumen prosedur, dan sebagai nilai kembali fungsi. ( ALLOCATABLE arrays are preferable to POINTER -based arrays because ALLOCATABLE arrays are guaranteed by Fortran 95 to be deallocated automatically when they go out of scope, eliminating the possibility of memory leakage . In addition, aliasing is not an issue for optimization of array references, allowing compilers to generate faster code than in the case of pointers.) ( ALLOCATABLE array lebih baik dari pada POINTER array berbasis-karena ALLOCATABLE array dijamin oleh Fortran 95 untuk deallocated secara otomatis ketika mereka keluar dari ruang lingkup, menghilangkan kemungkinan kebocoran memori . Selain itu, aliasing tidak menjadi masalah untuk optimasi dari referensi array, kompiler yang memungkinkan untuk menghasilkan kode lebih cepat daripada dalam kasus pointer.)

Another important supplement to Fortran 95 was the ISO technical report TR-15580: Floating-point exception handling , informally known as the IEEE TR. This specification defined support for IEEE floating-point arithmetic and floating point exception handling . Lain suplemen penting untuk Fortran 95 adalah ISO TR teknis laporan-15580: Floating-point exception handling, informal dikenal sebagai TR IEEE untuk. spesifikasi didefinisikan ini mendukung floating-point IEEE aritmatika dan floating point exception handling .

[ edit ] Conditional compilation and varying length strings [ sunting ] kompilasi Bersyarat string dengan panjang bervariasi

In addition to the mandatory "Base language" (defined in ISO/IEC 1539-1 : 1997), the Fortran 95 language also includes two optional modules: Selain "bahasa Base" wajib (didefinisikan dalam ISO / IEC 1539-1: 1997), Fortran 95 bahasa juga mencakup dua modul opsional:

  • Varying character strings (ISO/IEC 1539-2 : 2000) Memvariasikan string karakter (ISO / IEC 1539-2: 2000)
  • Conditional compilation (ISO/IEC 1539-3 : 1998) Kompilasi bersyarat (ISO / IEC 1539-3: 1998)

which, together, comprise the multi-part International Standard (ISO/IEC 1539). yang bersama-sama, terdiri dari bagian-multi Standar Internasional (ISO / IEC 1539).

According to the standards developers, "the optional parts describe self-contained features which have been requested by a substantial body of users and/or implementors, but which are not deemed to be of sufficient generality for them to be required in all standard-conforming Fortran compilers." Menurut pengembang standar, "menggambarkan bagian diri-fitur opsional yang terkandung yang telah diminta oleh tubuh besar pengguna dan / atau pelaksana, tetapi yang tidak dianggap menjadi umum cukup bagi mereka untuk diperlukan dalam semua standar-sesuai Fortran compiler. " Nevertheless, if a standard-conforming Fortran does provide such options, then they "must be provided in accordance with the description of those facilities in the appropriate Part of the Standard." Namun demikian, jika standar-sesuai Fortran tidak menyediakan pilihan seperti itu, maka mereka "harus diberikan sesuai dengan deskripsi fasilitas tersebut dalam Bagian sesuai Standar."

[ edit ] Fortran 2003 [ sunting ] Fortran 2003

Fortran 2003 is a major revision introducing many new features. Fortran 2003 merupakan revisi besar memperkenalkan banyak fitur baru. A comprehensive summary of the new features of Fortran 2003 is available at the Fortran Working Group (WG5) official Web site. [ 11 ] Ringkasan komprehensif fitur baru dari Fortran 2003 tersedia di Fortran Kelompok Kerja WG5) resmi situs Web (. [11]

From that article, the major enhancements for this revision include: Dari artikel itu, perangkat tambahan utama untuk revisi ini meliputi:

  • Derived type enhancements: parameterized derived types, improved control of accessibility, improved structure constructors, and finalizers. Turunan jenis perangkat tambahan: tipe turunan parameter, pengendalian peningkatan aksesibilitas, perbaikan struktur konstruktor, dan finalizers.
  • Object-oriented programming support: type extension and inheritance , polymorphism , dynamic type allocation, and type-bound procedures. Pemrograman berorientasi objek dukungan: tipe ekstensi dan pewarisan , polimorfisme , alokasi tipe dinamis, dan jenis prosedur yang terikat.
  • Data manipulation enhancements: allocatable components (incorporating TR 15581), deferred type parameters, VOLATILE attribute , explicit type specification in array constructors and allocate statements, pointer enhancements, extended initialization expressions, and enhanced intrinsic procedures. Data manipulasi perangkat tambahan: komponen dialokasikan (memasukkan TR 15581), parameter tipe ditangguhkan, VOLATILE atribut , spesifikasi eksplisit ketik konstruktor array dan mengalokasikan laporan, perangkat tambahan pointer, ekspresi inisialisasi diperpanjang, dan prosedur intrinsik ditingkatkan.
  • Input/output enhancements: asynchronous transfer, stream access, user specified transfer operations for derived types, user specified control of rounding during format conversions, named constants for preconnected units, the FLUSH statement, regularization of keywords, and access to error messages. Perangkat tambahan input / output: asynchronous transfer, akses streaming, pengguna pengoperasian transfer ditentukan untuk tipe turunan, yang ditentukan user control pembulatan selama konversi format, konstanta bernama untuk unit preconnected, yang FLUSH pernyataan, regularisasi kata kunci, dan akses ke pesan kesalahan.
  • Procedure pointers . Prosedur pointer .
  • Support for IEEE floating-point arithmetic and floating point exception handling (incorporating TR 15580). Dukungan untuk floating-point IEEE aritmatika dan floating point exception handling (memasukkan TR 15580).
  • Interoperability with the C programming language . Interoperabilitas dengan bahasa pemrograman C .
  • Support for international usage: access to ISO 10646 4-byte characters and choice of decimal or comma in numeric formatted input/output. Dukungan untuk penggunaan internasional: akses ke ISO 10646 -byte karakter 4 dan pilihan desimal atau koma dalam masukan diformat numerik / output.
  • Enhanced integration with the host operating system: access to command line arguments, environment variables , and processor error messages. Enhanced integrasi dengan sistem operasi host: akses ke baris perintah argumen, variabel lingkungan , dan pesan error prosesor.

An important supplement to Fortran 2003 was the ISO technical report TR-19767: Enhanced module facilities in Fortran. This report provided submodules, which make Fortran modules more similar to Modula-2 modules. Sebuah suplemen penting untuk Fortran 2003 adalah ISO laporan teknis TR-19767: fasilitas modul Enhanced dalam Fortran untuk ini. Laporan disediakan submodul, yang membuat Fortran modul lebih mirip Modula-2 modul. They are similar to Ada private child subunits. Mereka adalah serupa dengan Ada subunit anak swasta. This allows the specification and implementation of a module to be expressed in separate program units, which improves packaging of large libraries, allows preservation of trade secrets while publishing definitive interfaces, and prevents compilation cascades. Hal ini memungkinkan spesifikasi dan implementasi modul yang akan dinyatakan dalam satuan program terpisah, yang meningkatkan kemasan perpustakaan besar, memungkinkan pelestarian rahasia dagang sementara penerbitan antarmuka definitif, dan mencegah cascades kompilasi.

[ edit ] Fortran 2008 [ sunting ] Fortran 2008

The most recent standard, ISO/IEC 1539-1:2010, informally known as Fortran 2008, was approved in September 2010. [ 12 ] As with Fortran 95, this is a minor upgrade, incorporating clarifications and corrections to Fortran 2003, as well as introducing a select few new capabilities. Baru-baru ini standar paling, ISO / IEC 1539-1:2010, informal dikenal sebagai Fortran 2008, telah disetujui pada bulan September 2010. [12] Seperti Fortran 95, ini adalah upgrade kecil, menggabungkan klarifikasi dan koreksi atas Fortran 2003, serta sebagai memperkenalkan kemampuan pilih baru sedikit. The new capabilities include: Kemampuan baru meliputi:

  • Submodules – Additional structuring facilities for modules; supersedes ISO/IEC TR 19767:2005 Submodul - Fasilitas penataan tambahan untuk modul; menggantikan ISO / IEC TR 19767:2005
  • Co-array Fortran – a parallel execution model Co-array Fortran - model eksekusi paralel
  • The DO CONCURRENT construct – for loop iterations with no interdependencies The Concurrent DO membangun - untuk iterasi loop tanpa saling ketergantungan
  • The CONTIGUOUS attribute – to specify storage layout restrictions Atribut berdekatan - untuk menentukan pembatasan tata letak penyimpanan
  • The BLOCK construct – can contain declarations of objects with construct scope The BLOK membangun - dapat berisi deklarasi obyek dengan membangun ruang lingkup
  • Recursive allocatable components – as an alternative to recursive pointers in derived types Rekursif dialokasikan komponen - sebagai alternatif untuk pointer rekursif dalam tipe turunan

The Final Draft international Standard (FDIS) is available as document N1830. [ 13 ] Final Draft Standar internasional (FDIS) tersedia sebagai N1830 dokumen. [13]

HISTORY C++

Bjarne Stroustrup began work on "C with Classes" in 1979.The idea of creating a new language originated from Stroustrup's experience in programming for his Ph.D. thesis. Stroustrup found that Simula had features that were very helpful for large software development, but the language was too slow for practical use, while BCPL was fast but too low-level to be suitable for large software development. When Stroustrup started working in AT&T Bell Labs, he had the problem of analyzing the UNIX kernel with respect to distributed computing. Remembering his Ph.D. experience, Stroustrup set out to enhance the C language with Simula-like features. C was chosen because it was general-purpose, fast, portable and widely used. Besides C and Simula, some other languages that inspired him were ALGOL 68, Ada, CLU and ML. At first, the class, derived class, strong type checking, inlining, and default argument features were added to C via Stroustrup's C++ to C compiler, Cfront. The first commercial implementation of C++ was released on October 14, 1985.

In 1983, the name of the language was changed from C with Classes to C++ (++ being the increment operator in C). New features were added including virtual functions, function name and operator overloading, references, constants, user-controlled free-store memory control, improved type checking, and BCPL style single-line comments with two forward slashes (//). In 1985, the first edition of The C++ Programming Language was released, providing an important reference to the language, since there was not yet an official standard.Release 2.0 of C++ came in 1989 and the updated second edition of The C++ Programming Language was released in 1991.New features included multiple inheritance, abstract classes, static member functions, const member functions, and protected members. In 1990, The Annotated C++ Reference Manual was published. This work became the basis for the future standard. Late addition of features included templates, exceptions, namespaces, new casts, and a Boolean type.

As the C++ language evolved, the standard library evolved with it. The first addition to the C++ standard library was the stream I/O library which provided facilities to replace the traditional C functions such as printf and scanf. Later, among the most significant additions to the standard library, was large amounts of the Standard Template Library.

C++ continues to be used and is one of the preferred programming languages to develop professional applications.

Etymology

According to Stroustrup: "the name signifies the evolutionary nature of the changes from C". During C++'s development period, the language had been referred to as "new C", then "C with Classes". The final name is credited to Rick Mascitti (mid-1983) and was first used in December 1983. When Mascitti was questioned informally in 1992 about the naming, he indicated that it was given in a tongue-in-cheek spirit. It stems from C's "++" operator (which increments the value of a variable) and a common naming convention of using "+" to indicate an enhanced computer program. There is no language called "C plus". ABCL/c+ was the name of an earlier, unrelated programming language.

[edit] Language standard

In 1998, the C++ standards committee (the ISO/IEC JTC1/SC22/WG21 working group) standardized C++ and published the international standard ISO/IEC 14882:1998 (informally known as C++98).For some years after the official release of the standard, the committee processed defect reports, and published a corrected version of the C++ standard, ISO/IEC 14882:2003, in 2003. In 2005, a technical report, called the "Library Technical Report 1" (often known as TR1 for short), was released. While not an official part of the standard, it specified a number of extensions to the standard library, which were expected to be included in the next version of C++. Support for TR1 is growing in almost all currently maintained C++ compilers.

The standard for the next version of the language (known informally as C++0x) is in development.

Philosophy

In The Design and Evolution of C++ (1994), Bjarne Stroustrup describes some rules that he used for the design of C++:

  • C++ is designed to be a statically typed, general-purpose language that is as efficient and portable as C
  • C++ is designed to directly and comprehensively support multiple programming styles (procedural programming, data abstraction, object-oriented programming, and generic programming)
  • C++ is designed to give the programmer choice, even if this makes it possible for the programmer to choose incorrectly
  • C++ is designed to be as compatible with C as possible, therefore providing a smooth transition from C
  • C++ avoids features that are platform specific or not general purpose
  • C++ does not incur overhead for features that are not used (the "zero-overhead principle")
  • C++ is designed to function without a sophisticated programming environment

Inside the C++ Object Model (Lippman, 1996) describes how compilers may convert C++ program statements into an in-memory layout. Compiler authors are, however, free to implement the standard in their own manner.

Standard library

The 1998 ANSI/ISO C++ standard consists of two parts: the core language and the C++ Standard Library; the latter includes most of the Standard Template Library (STL) and a slightly modified version of the C standard library. Many C++ libraries exist that are not part of the standard, and, using linkage specification, libraries can even be written in languages such as BASIC, C, Fortran, or Pascal. Which of these are supported is compiler-dependent.

The C++ standard library incorporates the C standard library with some small modifications to make it optimized with the C++ language. Another large part of the C++ library is based on the STL. This provides such useful tools as containers (for example vectors and lists), iterators to provide these containers with array-like access and algorithms to perform operations such as searching and sorting. Furthermore (multi)maps (associative arrays) and (multi)sets are provided, all of which export compatible interfaces. Therefore it is possible, using templates, to write generic algorithms that work with any container or on any sequence defined by iterators. As in C, the features of the library are accessed by using the #include directive to include a standard header. C++ provides 72 standard headers, of which 17 are deprecated.

The STL was originally a third-party library from HP and later SGI, before its incorporation into the C++ standard. The standard does not refer to it as "STL", as it is merely a part of the standard library, but many people still use that term to distinguish it from the rest of the library (input/output streams, internationalization, diagnostics, the C library subset, etc.).

Most C++ compilers provide an implementation of the C++ standard library, including the STL. Compiler-independent implementations of the STL, such as STLPort,also exist. Other projects also produce various custom implementations of the C++ standard library and the STL with various design goals.

Language features

C++ inherits most of C's syntax. The following is Bjarne Stroustrup's version of the Hello world program that uses the C++ standard library stream facility to write a message to standard output:

#include 

int main()
{
std::cout << "Hello, world!\n";
}

Within functions that define a non-void return type, failure to return a value before control reaches the end of the function results in undefined behaviour (compilers typically provide the means to issue a diagnostic in such a case).The sole exception to this rule is the main function, which implicitly returns a value of zero.

Operators and operator overloading

C++ provides more than 35 operators, covering basic arithmetic, bit manipulation, indirection, comparisons, logical operations and others. Almost all operators can be overloaded for user-defined types, with a few notable exceptions such as member access (. and .*). The rich set of overloadable operators is central to using C++ as a domain-specific language. The overloadable operators are also an essential part of many advanced C++ programming techniques, such as smart pointers. Overloading an operator does not change the precedence of calculations involving the operator, nor does it change the number of operands that the operator uses (any operand may however be ignored by the operator, though it will be evaluated prior to execution). Overloaded "&&" and "||" operators lose their short-circuit evaluation property.

Kelebihan dari bahasa pemrograman Pascal

Kelebihan dari bahasa pemrograman Pascal adalah:

  • Tipe Data Standar, tipe-tipe data standar yang telah tersedia pada kebanyakan bahasa pemrograman. Pascal memiliki tipe data standar: boolean, integer, real, char, string,
  • User defined Data Types, programmer dapat membuat tipe data lain yang diturunkan dari tipe data standar.
  • Strongly-typed, programmer harus menentukan tipe data dari suatu variabel, dan variabel tersebut tidak dapat dipergunakan untuk menyimpan tipe data selain dari format yang ditentukan.
  • Terstruktur, memiliki sintaks yang memungkinkan penulisan program dipecah menjadi fungsi-fungsi kecil (procedure dan function) yang dapat dipergunakan berulang-ulang.
  • Sederhana dan Ekspresif, memiliki struktur yang sederhana dan sangat mendekati bahasa manusia (bahasa Inggris) sehingga mudah dipelajari dan dipahami.

Bahasa PASCAL juga merupakan bahasa yang digunakan sebagai standar bahasa pemrograman bagi tim nasional Olimpiade Komputer Indonesia (TOKI). Selain itu, Bahasa PASCAL masih digunakan dalam IOI (International Olympiad in Informatics).

Tipe Data

Dalam bahasa Pascal terdapat beberapa jenis tipe data yang bisa digunakan untuk sebuah variabel atau konstanta pada program. Tipe Data tersebut antara lain adalah

Tipe Data Deskripsi (range variabel)
Byte angka dari 0 sampai 255
Integer angka dari -32768 to 32767
Real semua nilai pecahan dari 1E-38 to 1E+38
Boolean nilai TRUE atau FALSE
Char semua karakter dari tabel ASCII
String semua huruf, spasi, frase

Hello World

Contoh program Hello World menggunakan bahasa pascal adalah sebagai berikut:

Program HelloWorld;
begin
writeln('Hello world');

end.

"BERUANG KUTUP"

Beruang yang Gemar Madu

Beruang, terkenal dengan bulu tebalnya dan kegemarannya makan madu, memiliki penglihatan dan pendengaran yang kurang peka. Lalu, kalian mungkin bertanya, bagaimana mereka mendapatkan madu? Baiklah, dengan hidung panjang yang dikaruniakan Allah kepada mereka. Hidung mereka atau daya penciuman mereka yang tajam memastikan mereka menemukan madu terbaik di sekitarnya.

Kalian barangkali mengetahui bahwa beruang tampak kaku dalam penampilan. Tapi jangan sesekali berpikir mereka itu lamban. Sungguh, mereka dapat berlari 48 kilometer per jam. Perlu juga kami sebutkan bahwa mereka sangat kuat. Dengan tubuhnya yang berukuran 2 – 3 meter, beberapa jenis beruang memanjat hingga cabang atas pohon dan menghabiskan waktu di sana. Beruang, yang biasanya makan tanaman, bahkan mampu menmanjat sampai 30 meter untuk menemukan makanannya.

Sekali beruang menemukan sarang lebah, ia menghantamnya beberapa kali dengan cakarnya, yang menyebabkan lebah-lebah dalam sarang pergi. Kemudian ia memakan madunya dengan lahap. Tapi, kalian jangan pernah mencobanya! Karena, lebah-lebah akan menyengatmu dan kalian bisa sakit karenanya. Namun, bulu tebal yang dikaruniakan Tuhankepada beruang melindungi mereka dari sengatan lebah-lebah itu. Jadi, mereka dapat dengan mudah mendapatkan madu tanpa masalah.

Beruang yang tidur di musim gugur tidak pernah meninggalkan sarang di mana mereka tidur berselimut ranting-ranting dan rerumputan kering hingga musim semi. Sebelum masa tidur panjang tersebut, mereka banyak makan , terutama buah cemara dan buah chestnut, sehingga lapisan lemak pada bagian bawah kulitnya menjadi tebal. Mereka harus menyimpan lemak dalam tubuh mereka. Hal ini dikarenakan sebelum musim semi berat badan mereka akan turun banyak. Jika seorang manusia kehilangan berat badan sebanyak itu, mereka akan segera mati. Akan tetapi, beruang dapat bertahan meskipun mereka sangat banyak kehilangan berat tubuh.

Melahirkan merupakan alasan lain mengapa beruang menghabiskan waktunya di gua-gua. Beruang biasanya melahirkan tiga ekor bayi, dan menyusui mereka hingga musim semi. Selama waktu itu mereka tidak meninggalkan gua. Bayi-bayi beruang lahir dalam keadaan buta, tidak bergigi, dan tidak berbulu. Sekali bayi-bayi itu meninggalkan gua, induk beruang harus melindungi mereka. Jika tidak, mereka mungkin akan terbunuh oleh pemburu atau beruang jantan.

Tuhan kita, yang Maha Pengasih dan Penyayang, mencukupkan kebutuhan semua makhluk-Nya dan melindungi mereka. Demikian pula, Dia telah menyediakan bagi bayi-bayi beruang yang manis segala sesuatu yang mereka perlukan untuk dapat bertahan dan agar tidak tersakiti. Tuhan telah menjamin keamanan bagi mereka melalui induknya yang kuat yang tak pernah meninggalkan mereka.


Boneka Salju Raksasa: Beruang Kutub

Jika kalian melihat seekor beruang kutub, yang merupakan salah satu binatang terbesar di dunia ini, kalian barangkali akan mengiranya sebagai boneka salju. Boneka salju raksasa ini berbobot sekitar 800 Kg dan tingginya sekitar 2,5 meter. Kumpulkan 10 orang dewasa dan seberat merekalah seekor beruang kutub.

Beruang kutub mempunyai ciri-ciri menakjubkan yang memungkinkan mereka hidup di kutub utara. Meskipun beriklim kutub, banyak es dan badai salju, karena kebesaran Allah, lapisan lemak tebal yang berada di bawah kulit beruang kutub melindunginya dari kedinginan. Bulunya tebal, lebat, panjang dan halus. Pernahkah kalian berfikir mengapa beruang kutub dengan ciri khas seperti itu tidak hidup di gurun Afrika? Tentu saja jawabannya adalah bahwa Allah menciptakan beruang kutub sesuai dengan kondisi lingkungan dimana ia tinggal. Coba pikirkan sejenak! Jika beruang kutub hidup di gurun, ia tidak dapat bertahan dalam iklim panas gurun semenitpun.

Apa yang membuat beruang kutub berbeda dengan beruang-beruang lainnya adalah, ia tidak suka tidur di musim dingin. Hanya beruang betina, terutama yang sedang hamil, akan tidur panjang di musim dingin. Allah, ar-Razzaq, yang selalu memberi rizqi kepada mahluk-Nya, telah menyediakan makan bagi bayi beruang yang baru lahir. Susu beruang kutub mengandung sangat banyak lemak. Susu berlemak inilah yang sangat dibutuhkan oleh bayi beruang. Mereka tumbuh sangat cepat berkat susu berlemak ini, dan mereka siap keluar dari gua di musim semi.

Pernahkah kalian berfikir bahwa beruang kutub adalah perenang dan penyelam yang hebat ? Benar ! Beruang kutub sangat pandai berenang dan menyelam. Ketika berenang, mereka menggunakan kaki depannya. Allah telah memudahkan hidup beruang kutub dengan kemampuannya menggunakan kaki tersebut sebagai dayung. . Selain itu, di dalam air, mereka dapat menutup lubang hidung, dan tetap membuka matanya, kemudian kakinya yang berselaput, mirip dengan bebek, menjadikannya perenang yang mahir.

Beruang kutub hidup di kawasan terdingin di dunia seperti Kutub Utara, Kanada Utara dan Siberia Utara. Tapi kaki beruang kutub tak pernah kedinginan. Kalian pasti tidak tahan ketika tangan atau kaki kalian diletakkan di atas es selama beberapa menit. Namun hebatnya, beruang kutub tidak pernah merasakan dinginnya es karena bulunya yang tebal. Allah telah memberikan keistimewaan ini sehingga mereka tidak pernah kedinginan. Jika saja kulit mereka sama dengan kulit manusia, tentu mereka tidak akan bertahan hidup di kutub. Terlebih lagi, lapisan lemak setebal 10 cm di bawah kulit mereka menjadi penahan panas. Oleh karena itu, di air sedingin es, mereka dapat berenang sejauh 2000 km dengan kecepatan 10-11 kilometer per jam.

Tahukah kalian mengapa warna beruang kutub putih atau putih kecoklatan? Jika kita perhatikan, susah diketahui ada beruang putih di antara salju yang menutupi sungai-sungai dan lempengan es kutub utara yang membentang ribuan kilometer. Bayangkan bagaimana sulitnya mereka bersembunyi jika warna kulitnya hitam seperti burung gagak atau berwarna-warni seperti burung betet yang hidup di hutan tropis.

Beruang kutub mempunyai indra penciuman yang sangat tajam sehingga mereka mengetahui adanya bau anjing laut yang bersembunyi di bawah lapisan salju setebal 1,5 m. Ketika berburu, mereka juga menggunakan berbagai taktik. Sekarang bayangkan beruang kutub dengan bulu putih saljunya. Apakah kalian mengira seseorang akan mudah melihatnya jika ia menelungkup di atas salju? Jika kalian hanya memperhitungkan bulunya yang putih, kalian pasti menjawab “tidak”. Tapi ingat bahwa beruang kutub mempunyai hidung yang berwarna hitam. Di atas salju yang berwarna putih, hidung ini membuat penyamarannya tidak sempurna. Tapi beruang kutub melakukan sesuatu yang cerdik untuk mengatasi hal itu. Ia menutupi hidungnya dengan kaki depannya yang putih. Sekarang penyamarannya sempurna dan ia menunggu mangsa yang mendekatinya.

Hal ini patut memperoleh perhatian khusus karena untuk mempunyai taktik seperti itu, beruang kutub pasti cerdik. Renungkan sejenak, beruang kutub ini tahu bahwa warna putih bulunya sangat cocok dengan lingkungan tempat dia hidup. Terlebih lagi, mereka cukup pandai untuk menyadari perlunya menutupi hidung hitamnya, satu-satunya penghalang penyamarannya.

"Cara Perawatan Green Iguana Hijau"

Cara Perawatan Green Iguana Hijau


"tulisan Teori Organisasi umum2#"

Nama: Iguana hijau

Nama Latin: Iguana iguana

Negara Asal: Amerika bagian Tengah dan bagian Selatan Central and South America. Iguana yang import kebanyakan dari Columbus, El Salvador, Hoduras, Peru, Mexico dan Suriname.Size: Iguana Dewasa bisa mencapai 1.8mtr

Umur: Apabila di pelihara dengan baik bisa mencapai usia 20 tahun..

Catatan: Banyak orang yang berpikir bahwa Iguana adalah hewan untuk pemula dalam pemeliharaan reptile, tapi sebetulnya itu adalah hal yang keliru. Iguana memerlukan penanganan yang serius yang biasanya diluar dari kemampuan pemula. Hal ini disebabkan kurangnya informasi dan pengetahuan yang menyebabkan Iguana mati sebelum dewasa. Dalam memelihara Iguana harus memperhatikan kandang, makanan.

Penampilan Umum: Iguana adalah hewan yang paling sering dikenal sibagai Kadal. Iguana memiliki lima jari di tiap kakinya,memiliki â€Å“jengger”. Semua jenis Iguana memiliki duri yang berada di sepajang punggungnya. Berbeda degan yang diketahui masyrakat bahwa warna iguana adalah hijau, semua juvenil mempunyai warna hijau, tapi setelah mereka dewasa,warna tubuhnya berubah menjadi coklat cenderung oranye dengan garis pada ekornya.

Kandang: 2.5 – 3.6 M Panjang x 1.2 – 1.5 lebar x 1.8 m Tinggi. Tempat minum harus disediakan di dalam kandang. Ranting untuk menajat atau pohon juga bisa disedikan di dalam kandang.

Temperature: Iguanas berasal dari tempat yang bersuhu tropic dan perlu tempat yang hangat, Suhu yang baik adalah 26 C s/d 29 C, tempat berjemur 32 C s/d 35 C. sebaiknya di kandang di pasang Thermometer untuk memantau keadaan suhu.

Panas dan Pencahayaan: Sinar UV baik untuk menjaga metabolism dan pertumbuhan tulang pada Iguana, Tanpa sinar ultra violet Iguana akan mudah sakit dan bisa menyebabkan kematian.

Alas: Iguanas sering kali menggunakan lidahnya untuk mengidentasi suatu benda maka alas yang berbahan dari serutan kayu tidak bisa digunakan karena akan menyebabkan tertelannya benda yang ada. Sebagai alas bisa digunakan Kertas koran atau kertas bekas, bisa juga di gunakan sejenis carpet karet atau bisa juga digunakan

Kelembaban: Kelembaban yang disukai adalah 65 % – 75 % . bisa digunakan pengairan yang menggunakan mesin atau pun bisa juga disemprot sehari dua kali untuk mempertahankan kelembaban.

Diet: Iguana adalah binatang pemakan tumbuhan. Sebaiknya untuk memberikan makanan dari bahan yang terbuat dari tumbuahn yang terdiri dari 40 – 45 % hijau –hijauan (collard,turnip,mustard,dandelion,escalore dan Cress) , Kemudian 40 – 45% adalah Sayuran (green bean, butternut, kabocha, snap dan atau peas, pasnip, asparagus, okra, alfalfa (yang matang bukan tunas ), onions, mushrooms, bell peppers, sweet potato, zucchini, yellow squash dan carrot ). 5 – 10 % adalah (Blackberris, strawberri, raspberri, grapes, manggo, melon, papaya, banana dan apel.) Tidak dianjurkan memberi makanan dari tanaman liar karena bisa menyebabkan iguana terkena penyakit.

Maintenance: Jagalah agar kandang selalu bersih, alas dan kandang bisa dibersihkan dengan pemutih dicampur air sebnyak 5 %, setelah itu disiram dengan air bersih agar sisa pemutihnya hilang, dan tidak meracuni Iguana. Selalu cuci sebelum dan setelah memegang iguana dan atau alat2.nya

Rabu, 06 April 2011

tugas 3 "Teori Organisasi Umum 2#"(2KA23)



TUGAS 3

TABEL TU DAN MU

Dewanti Wulandari ( 12109190 )

Erica Mourrisa ( 10109251 )

Martin Donovan ( 14109391 )

Nilla Akhmad Pratiwi ( 14109493 )

Ning Sabar Mawarni ( 15109970 )


Misalkan Joko ingin membeli baju, yang harga per helainya Rp. 25000,00. Berapa buah baju yang akan dikonsumsi ? Untuk menjawabnaya, kita harus tahu dahulu nilai baju itu bagi Joko yang diasumsikan setara dengan rupiah. Seandainya pola konsumsi Joko seperti ditunjukan dalam tabel.



Bagi Joko, baju pertama nilai kegunaannya jauh lebih besar dibanding uang yang harus dikeluarkan. Hanya dengan Rp. 25.000 diperoleh kegunaan 50.000 util. Karenanya dia mau menambah konsumsi bajunya. Baju yang keduamemberitambahan kegunaan (MU) lebih besar daripada yang pertama,yaitu 75.000 util, berarti kegunaan total (TU)menjadi 125.000 util. Ia pun menambah konsumsi baju menjadi tiga, yang memberi TU 185.000 util dan MU 60.000 util. Walaupun telah terjadi penurunan MU (hukum pertambahan manfaatyang makin menurun telah terjadi), tetap lebih menguntungkan. Seandainya Joko terus menambah konsumsi bajunya, maka setelah baju ke-lima penambahan konsumsi tidak menambah TU, bahkan dapat menurunkan TU karena MU sudah < 0 (negatif). Pergerakan angka-angka dalam tabel dapat diterjemahkan dalam bentuk grafik berikut ini. Terlihat kurva TU pada awalnya menaik tajam, seiring naiknya nilai MU. Di titik A MU mencapai maksimum, untuk selanjutnya menurun yang menyebabkan slope kurva TU makin mendatar.

Dari tabel diatas dapat disimpulkan bahwa Joko akan berhenti mengkonsumsi pada baju yang kelima. Jika setelah itu dia menambah jumlah baju yang dikonsumsi, tindakan itu bukan saja tidak menambah TU, bahkan menguranginya Joko berhenti mengkonsumsi pada saat harga baju (Rp.25.000,00) sama dengan nilai utilitas marjinal (25.000 util).

MU = P ............................................................................................................... (4.1)

Prinsip ini berlaku untuk semua barang,sehingga konsumen akan mencapai kepuasan maksimum pada saat :

Mux = Px ............................................................................................................ (4.2)

Dimana : Mux = Tambahan kegunaan x

Px = Harga x

Senin, 28 Maret 2011

TUGAS 1 TEORI ORGANISASI UMUM 2#


TUGAS 1 TEORI ORGANISASI UMUM 2#
2 KA 23


DEWANTI WULANDARI 12109190
ERICA MOURRISA 10109251
MARTIN DONOVAN 14109391
NILLA AKHMAD PRATIWI 14109493
NING SABAR MAWARNI 15109970