วันอังคารที่ 15 มีนาคม พ.ศ. 2554

ภาษา JAVA

ภาษาจาวา (Java programming language) เป็นภาษาโปรแกรมเชิงวัตถุ พัฒนาโดย เจมส์ กอสลิง และวิศวกรคนอื่นๆ ที่ ซัน ไมโครซิสเต็มส์ ภาษาจาวาถูกพัฒนาขึ้นในปี พ.ศ. 2534 (ค.ศ. 1991) โดยเป็นส่วนหนึ่งของ โครงการกรีน (the Green Project) และสำเร็จออกสู่สาธารณะในปี พ.ศ. 2538 (ค.ศ. 1995) ซึ่งภาษานี้มีจุดประสงค์เพื่อใช้แทนภาษาซีพลัสพลัส (C++) โดยรูปแบบที่เพิ่มเติมขึ้นคล้ายกับภาษาอ็อบเจกต์ทีฟซี (Objective-C) แต่เดิมภาษานี้เรียกว่า ภาษาโอ๊ก (Oak) ซึ่งตั้งชื่อตามต้นโอ๊กใกล้ที่ทำงานของ เจมส์ กอสลิง แต่ว่ามีปัญหาทางลิขสิทธิ์ จึงเปลี่ยนไปใช้ชื่อ "จาวา" ซึ่งเป็นชื่อกาแฟแทน
และแม้ว่าจะมีชื่อคล้ายกัน แต่ภาษาจาวาไม่มีความเกี่ยวข้องใด ๆ กับภาษาจาวาสคริปต์ (JavaScript) ปัจจุบันมาตรฐานของภาษาจาวาดูแลโดย Java Community Process ซึ่งเป็นกระบวนการอย่างเป็นทางการ ที่อนุญาตให้ผู้ที่สนใจเข้าร่วมกำหนดความสามารถในจาวาแพลตฟอร์มได้
จุดมุ่งหมาย
จุดมุ่งหมายหลัก 4 ประการ ในการพัฒนาจาวา คือ
  1. ใช้ภาษาโปรแกรมเชิงวัตถุ
  2. ไม่ขึ้นกับแพลตฟอร์ม (สถาปัตยกรรม และ ระบบปฏิบัติการ)
  3. เหมาะกับการใช้ในระบบเครือข่าย พร้อมมีไลบรารีสนับสนุน
  4. เรียกใช้งานจากระยะไกลได้อย่างปลอดภัย
จาวาแพลตฟอร์ม และ ภาษาจาวา
เนื่องจากชื่อที่เหมือนกัน และการเรียกขานที่มักจะพูดถึงพร้อมกันบ่อยๆ ทำให้คนทั่วไป มักสับสนว่า ภาษาจาวา และ จาวาแพลตฟอร์ม เป็นสิ่งเดียวกัน
ในความเป็นจริงนั้น ทั้งสองสิ่ง แม้จะทำงานเสริมกัน แต่ก็เป็นสิ่งที่แยกออกจากกัน
โดย ภาษาจาวานั้น คือภาษาโปรแกรมอย่างนึง ดังที่ได้อธิบายไปข้างต้น ส่วน จาวาแพลตฟอร์มนั้น คือสภาพแวดล้อมสำหรับการใช้งานโปรแกรมจาวา โดยมีองค์ประกอบหลักคือ จาวาเวอร์ชวลแมชีน (Java virtual machine) และ ไลบรารีมาตรฐานจาวา (Java standard library)
โปรแกรมที่ทำงานบนจาวาแพลตฟอร์มนั้น ไม่จำเป็นจะต้องสร้างด้วยภาษาจาวา เช่น อาจจะใช้ ภาษาไพธอน (Python) หรือ ภาษาอื่นๆ ก็ได้
ส่วนภาษาจาวานั้น ก็สามารถนำไปใช้พัฒนาโปรแกรมสำหรับแพลตฟอร์มอื่นได้เช่นเดียวกัน เช่น คอมไพเลอร์ gcj สามารถคอมไพล์โปรแกรมที่เขียนด้วยภาษาจาวา ให้ทำงานได้ โดยไม่ต้องใช้ จาวาเวอร์ชวลแมชีน
ประวัติ
รุ่นต่าง ๆ ของภาษาจาวา
  • 1.0 (ค.ศ. 1996) — ออกครั้งแรกสุด
  • 1.1 (ค.ศ. 1997) — ปรับปรุงครั้งใหญ่ โดยเพิ่ม inner class
  • 1.2 (4 ธันวาคม, ค.ศ. 1998) — รหัส Playground ด้านจาวาแพลตฟอร์มได้รับการเปลี่ยนแปลงครั้งใหญ่ใน API และ JVM (API สำคัญที่เพิ่มมาคือ Java Collections Framework และ Swing; ส่วนใน JVM เพิ่ม JIT compiler) แต่ตัวภาษาจาวานั้น เปลี่ยนแปลงเพียงเล็กน้อย (เพิ่มคีย์เวิร์ด strictfp) และทั้งหมดถูกเรียกชื่อใหม่ว่า "จาวา 2" แต่ระบบเลขรุ่นยังไม่เปลี่ยนแปลง
  • 1.3 (8 พฤษภาคม, ค.ศ. 2000) — รหัส Kestrel แก้ไขเล็กน้อย
  • 1.4 (13 กุมภาพันธ์, ค.ศ. 2002) — รหัส Merlin เป็นรุ่นที่ถูกใช้งานมากที่สุดในปัจจุบัน (ขณะที่เขียน ค.ศ. 2005)
  • 5.0 (29 กันยายน, ค.ศ. 2004) — รหัส Tiger (เดิมทีนับเป็น 1.5) เพิ่มคุณสมบัติใหม่ในภาษาจาวา เช่น Annotations ซึ่งเป็นที่ถกเถียงกันว่านำมาจากภาษาซีชาร์ป ของบริษัทไมโครซอฟท์, Enumerations, Varargs, Enhanced for loop, Autoboxing, และที่สำคัญคือ Generics
  • 6.0 (11 ธันวาคม, ค.ศ. 2006) [1] — รหัส Mustang เป็นรุ่นในการพัฒนาของ Java SDK 6.0 ที่ออกมาให้ทดลองใช้ในเดือนพฤศจิกายน ค.ศ. 2004
  • 7.0 (กำลังพัฒนา กำหนดออก ค.ศ. 2008) — รหัส Dolphin กำลังพัฒนา
ข้อมูลอ้างอิง http://pirun.ku.ac.th/~b4913291/03_03_07.htm





ตัวดำเนินการ(Operator)

 ตัวดำเนินการ(Operator)
1. ตัวดำเนินการทางคณิตศาสตร์
        ประเภทการคำนวณ (Arithmetic Operators
        จัดเป็นตัวดำเนินการที่สามารคำนวณผลลัพธ์ทางคณิตศาสตร์ 
        โดยใช้เครื่องหมายทางคณิตศาสตร์มาเป็นตัวกำหนดวิธีการคำนวณ


ตัวดำเนินการ
ความหมาย
ตัวอย่างการใช้งาน
ผลลัพธ์
+
การบวก
10+5
15
-
การลบ
10-5
5
*
การคูณ
10*5
50
/
การหาร (ได้ผลหาร)
10/5
2
%
การหาร (ได้เศษจากการหาร)
10%5
0

class TriangleArea
{        public static void main(String arg[])
        {       float area;
                int base = Integer.parseInt(arg[0]);
                int height = Integer.parseInt(arg[1]);
                area = 1/2 * base * height;
                System.out.println("Area of Triangle is : " + area);
        }
}
ประเภทการคำนวณและให้ค่า (Arithmetic Assignment Operators)
เป็นตัวดำเนินการที่ใช้สำหรับทำให้เกิดการคำนวณจากข้อมูลในตัวแปร และยังผลให้ผลลัพธ์จากการคำนวณไปเก็บไว้ยังตัวแปรนั้นๆ ดังนั้นตัวดำเนินการประเภทนี้จึงต้องมีตัวแปรมารอรับผลลัพธ์อยู่ด้วย

ตัวดำเนินการ
ความหมาย
ตัวอย่าง
เปรียบได้กับ
ผลลัพธ์(เมื่อ a =10)
+=
การบวกa +=5a = a + 5
15
-=
การลบa -=5a = a - 5
5
*=
การคูณa *=5a = a * 5
50
/=
การหาร (ได้ผลหาร)a /=5a = a / 5
2
%=
การหาร (ได้เศษจากการหาร)a %=5a = a % 5
0
ประเภทการคำนวณเพิ่มค่าและลดค่าข้อมูล (Increment/Decrement Arithmetic Operators)
มีตัวดำเนินการประเภทหนึ่งถูกกำหนดไว้เพื่อจุดประสงค์ในการเพิ่มค่าหนึ่งจำนวน หรือลงค่าหนึ่งจำนวนของข้อมูลภายในตัวแปร หรือใช้สำหรับทำให้ตัวแปรมีคุณลักษณะเป็นตัวนับ (Counter)

ตัวดำเนินการ
ความหมาย
ตัวอย่าง
ผลลัพธ์(เมื่อ a =10)
ผลลัพธ์
หลังคำสั่ง
++Variableเพิ่มค่าหนึ่งค่าก่อนการเข้าถึงSystem.out.print(++a)
11
11
Variable++เพิ่มค่าหนึ่งค่าหลังการเข้าถึงSystem.out.print(a++)
10
11
- -Variableลดค่าหนึ่งค่าก่อนการเข้าถึงSystem.out.print(- -a)
9
9
Variable- -ลดค่าหนึ่งค่าหลังการเข้าถึงSystem.out.print(a- -)
10
9

class IncreasementYourNumber {
       public static void main(String arg[])
       {        int a = Integer.parseInt(arg[0]);              System.out.println("Your Number is " + (a++) + " Increase to " + a );       }}

2. ตัวดำเนินการข้อมูลเชิงบิต (Bitwise Operators)ตัวดำเนินการประเภทนี้มีแนวความคิดมาจากการคำนวณข้อมูลที่เก็บในรูปของบิต เพื่อให้ผลลัพธ์ในการคำนวณออกเป็นข้อมูลบิต (บิตเป็นหน่วยที่เล็กที่สุดข้อข้อมูลในคอมพิวเตอร์ บิตทำให้เกิดข้อมูลตัวเลขจำนวนเต็ม[32 บิต] ทำให้เกินข้อมูลตัวอักษร[16 บิต] และอื่นๆ) ส่วนใหญ่แล้วตัวดำเนินการประเภทนี้นิยมใช้กับการคำนวณที่สลับซับซ้อน หรือการคำนวณเชิงคณิตศาสตร์ชั้นสูง

ตัวดำเนินการ
ความหมาย
ตัวอย่าง
ผลลัพธ์ของ a
(เมื่อ a =1101; b = 1001)
~NOT (1 เป็น 0; 0 เป็น 1)~a0010
&ANDa & b1001
|ORa | b1101
<<ขยับบิตทางซ้ายa << 20100
>>ขยับบิตทางขวาa >> 20011
>>>ขยับบิตทางขวา
(สำหรับข้อมูล unsign)
a >>> 2
3. ตัวดำเนินการข้อความตรรกะ(Boolean Operators)
ตัวดำเนินการเปรียบเทียบ
ลักษณะของตัวดำเนินการแบบนี้ผลลัพธ์จะได้เป็นข้อมูลทางตรรกะ คือความจริงหรือความเท็จ ดังนั้นจึงนิยมใช้ตัวดำเนินการสำหรับการเปรียบเทียบกันระหว่างข้อมูลสองจำนวน


ตัวดำเนินการ
ความหมาย
ตัวอย่าง
ผลลัพธ์(เมื่อ a =10; b = 15)
==
ค่าเท่ากันหรือไม่a == bFalse (เท็จ)
!=
ค่าไม่เท่ากันหรือไม่a != bTrue (จริง)
>
ค่ามากกว่าหรือไม่a > bFalse (เท็จ)
>=
ค่ามากกว่าหรือเท่ากันหรือไม่a >= bFalse (เท็จ)
<
ค่าน้อยกว่าหรือไม่a < bTrue (จริง)
<=
ค่าน้อยกว่าหรือเท่ากันหรือไม่a <= bTrue (จริง)

class TrueOrFalse{     public static void main(String args[])      {    System.out.println(true);            System.out.println(true==false);                        System.out.println(3.00==3);            System.out.println("a"!="A");
            int a = 120, b = 300;            System.out.println(a > b);            System.out.println(a/b < 0);      }}

ตัวดำเนินการข้อมูลตรรกะเป็นตัวดำเนินการซึ่งถูกใช้สำหรับดำเนินการกับค่าทางตรรกะ ถึงแม้ว่าค่าทางตรรกะจะมีแค่ค่า true กับ false ก็ตาม โปรแกรมสามารถนำค่าเหล่านั้นมาคำนวณได้ ซึ่งผลลัพธ์จากการประมวลผลจะได้เป็นค่าทางตรรกะ


ตัวดำเนินการ
ความหมาย
ตัวอย่าง
ผลลัพธ์(เมื่อ a =10; b = 15)
!
กลับค่าทางตรรกะ
!(a == b)
true (จริง)
&&
AND ค่าทางตรรกะ
(5>=a) && (5<= b)
false (เท็จ)
||
OR ค่าทางตรรกะ
(15==a) || (15== b)
true (จริง)




ข้อมูลอ้างอิง  http://www.itmelody.com/tu/java2.html




คอมไพเลอร์ (compiler)

ตัวแปลโปรแกรม

ตัวแปลโปรแกรม หรือ คอมไพเลอร์ (compiler) เป็น โปรแกรมคอมพิวเตอร์ที่ทำหน้าแปลงชุดคำสั่งภาษาคอมพิวเตอร์หนึ่ง ไปเป็นชุดคำสั่งที่มีความหมายเดียวกัน ในภาษาคอมพิวเตอร์อื่น
ตัวแปลโปรแกรมส่วนใหญ่ จะทำการแปล รหัสต้นแบบ (source code) ที่เขียนในภาษาระดับสูง เป็น ภาษาระดับต่ำ หรือภาษาเครื่อง ซึ่งคอมพิวเตอร์สามารถที่จะทำงานได้โดยตรง. อย่างไรก็ตาม การแปลจากภาษาระดับต่ำเป็นภาษาระดับสูง ก็เป็นไปได้ โดยใช้ตัวแปลโปรแกรมย้อนกลับ (decompiler)





รูปแสดงขั้นตอนการทำงานของตัวแปลโปรแกรม

ผลลัพธ์ของการแปลโปรแกรม (คอมไพล์) โดยทั่วไป ที่เรียกว่า ออบเจกต์โค้ด จะประกอบด้วยภาษาเครื่อง ที่เต็มไปด้วยข้อมูลเกี่ยวกับชื่อและสถานที่ของแต่ละจุด และการเรียกใช้วัตถุภายนอก (สำหรับฟังก์ชันที่ไม่ได้อยู่ใน อ็อบเจกต์) สำหรับเครื่องมือที่เราใช้รวม อ็อบเจกต์เข้าด้วยกัน จะเรียกว่าโปรแกรมเชื่อมโยงเพื่อที่ผลลัพธ์ที่ออกมาในขั้นสุดท้าย เป็นไฟล์ที่ผู้ใช้งานทั่วไปสามารถใช้งานได้สะดวก
ตัวแปลภาษาตัวที่สมบูรณ์ตัวแรก คือ ภาษาฟอร์แทรน (FORTRAN) ของ ไอบีเอ็ม ในปี ค.ศ. 1957 และ ภาษาโคบอล (COBOL) ก็เป็นตัวแปลภาษาตัวแรก ๆ ที่สามารถทำงานได้บนหลาย ๆ สถาปัตยกรรมทางคอมพิวเตอร์. การพัฒนาตัวแปลภาษารุดหน้าอย่างรวดเร็ว และเริ่มมีรูปแบบที่ชัดเจนยิ่งขึ้นต่อมา ในช่วงทศวรรษ 1960


ซอร์สโค้ด (source code)


 
ตัวอย่างซอร์สโค้ด ของ HTML ผสมกับ จาวาสคริปต์

ซอร์สโค้ด (source code) หรืออาจจะเรียกว่า ซอร์ส หรือ โค้ด คือข้อความที่เป็นชุดที่ถูกเขียนขึ้น และสามารถอ่านและเข้าใจได้ ใช้สำหรับภาษาโปรแกรม ในการเขียนโปรแกรมแบบใหม่ ซอร์สโค้ดนิยมเก็บไว้ในไฟล์หลายไฟล์แยกจากกัน เพื่อให้ง่ายในการเรียกใช้ส่วนย่อยของคำสั่งนั้น
ถึงแม้ว่าซอร์สโค้ดถูกเขียนขึ้นในลักษณะที่ให้อ่านและแก้ไขได้ง่าย ซอร์สโค้ดจะถูกเปลี่ยนเป็นภาษาคอมพิวเตอร์ เพื่อใช้ในการประมวลผลสำหรับคอมพิวเตอร์โดยคอมไพเลอร์สำหรับโปรแกรมนั้น หรือ คำนวณในทันทีโดยใช้อินเตอร์พรีเตอร์เข้ามาช่วย




ตรรกศาสตร์

ตรรกศาสตร์ คือมักถูกกล่าวว่าเป็นการศึกษาเกี่ยวกับการโต้แย้ง แต่ความหมายที่แน่นอนของตรรกศาสตร์ก็ยังเป็นเรื่องที่ถกเถียงกันอยู่ในหมู่นักปรัชญา อย่างไรก็ตาม เนื้อหาวิชานี้ค่อนข้างแน่นอน กล่าวคือ หน้าที่ของนักตรรกศาสตร์ คือการพัฒนาระบบการให้เหตุผล เพื่อทำให้สามารถแยกแยะระหว่างข้อพิสูจน์ที่ดีกับข้อพิสูจน์ที่ผิดพลาดได้


ข้อมูลอ้างอิง  http://pirun.ku.ac.th/~b4913291/02_02.htm