วันอาทิตย์ที่ 29 สิงหาคม พ.ศ. 2553

ความรู้

ความรู้คืออะไร พจนานุกรมฉบับราชบัณฑิตสถาน พ.ศ.2542 ให้นิยามว่า ความรู้ คือสิ่งที่สั่งสมมาจากการศึกษาเล่าเรียน การค้นคว้าหรือประสบการณ์ รวมทั้งความสามารถเชิงปฏิบัติและทักษะความเข้าใจ หรือสารสนเทศที่ได้รับมาจากประสบการณ์ สิ่งที่ได้รับมาจากการได้ยิน ได้ฟัง การคิดหรือการปฏิบัติองค์วิชาในแต่ละสาขาซึ่งในความคิดของผู้นั้นคิดว่า นิยามของคำว่า ความรู้ นั้นเป็นสิ่งที่ยากที่จะกำหนดขอบเขตของความหมาย แต่ถ้าเราเริ่มจากคำว่า "ข้อมูล" หรือ "ข้อเท็จจริง" สิ่งที่ได้คือความจริงต่าง ๆ ที่ปรากฏเกิดขึ้น การดำเนินการต่าง ๆ ทำให้เกิดข้อมูล เช่น เมื่อเรามีการซื้อขายสินค้า ก็มีการจดบันทึกหลักฐาน เช่น การออกใบเสร็จ ใบสั่งของ เอกสารกำกับ เป็นรายการแสดงการดำเนินการ สิ่งเหล่านี้เรียกว่าข้อมูล ข้อมูลจึงเป็นเรื่องของข้อเท็จจริงที่เกิดจากการกระทำของมนุษย์ เกิดจากปรากฏการณ์ทางธรรมชาติ เกิดจากกิจกรรมต่าง ๆ ที่ต้องดำเนินการทั้งในระดับส่วนตัว ระดับการทำงานร่วมกัน และระดับกลุ่ม องค์กร ตลอดจนระดับสังคม และชุมชนต่าง ๆ และความรู้นั้นก็มีอยู่ 2 ชนิดคือ 1. ความรู้ที่ฝังอยู่ในสมอง ( Tacit Knowledge ) อาจเรียกง่ายๆ ว่า ความรู้ในตัวคน ได้แก่ ความรู้ที่เป็นทักษะ ประสบการณ์ ความคิดริเริ่ม พรสวรรค์ หรือสัญชาติญาณของบุคคลในการทำความเข้าใจ สิ่งต่างๆ บางครั้งเรียกว่าความรู้แบบนามธรรม 2. ความรู้ที่ชัดแจ้ง ( Explicit Knowledge ) อาจเรียกว่าความรู้นอกตัวคน เป็นความรู้ที่สามารถรวบรวม ถ่ายทอดได้ โดยผ่านวิธีต่างๆ เช่นการบันทึกเป็นลายลักษณ์อักษร เป็นหนังสือ ตำราเอกสาร กฎระเบียบ วิธีปฏิบัติงาน เป็นต้น บางครั้งเรียกว่าเป็นความรู้แบบรูปธรรม จากการสำรวจในต่างประเทศ พบว่า แหล่งเก็บความรู้ในองค์กรหรือคลังความรู้ขององค์กรมีอยู่ในเอกสาร ( กระดาษ ) 26% ในเอกสารอิเล็กทรอนิคส์ 20% ในฐานความรู้ ( IT ) 12% และมากที่สุดอยู่ในสมองพนักงานถึง 42% ขณะเดียวกันก็มีผลสำรวจผู้บริหารระดับสูงภาคธุรกิจในกลุ่มสหภาพยุโรปและประเทศ สหรัฐอเมริกาเกี่ยวกับประโยชน์และความสำคัญของการจัดการความรู้พบว่า 80% เห็นว่าการจัดการความรู้ช่วยให้ตนสามารถตัดสินใจได้อย่างมีประสิทธิภาพยิ่งขึ้น ขณะที่ประเด็นทางด้านอื่นๆ ได้รับความสำคัญรองๆ ลงมา
อ้างอิง : http://learners.in.th/blog/radchanee-main/2596









"ความรู้ฝังลึก" (tacit knowledge) หมายถึงความรู้ที่มีอยู่ในตัวบุคคล ซึ่งสั่งสมมานาน เป็นประสบการณ์ชีวิต เป็นเครื่องมือในการดำเนินชีวิต แต่เป็นความรู้ที่ไม่ได้บอกออกมาชัดแจ้ง คนทุกคนมีความรู้นี้มากน้อยต่างกัน บางคนลึกซึ้งมาก พ่อแม่ปู่ย่าตายาย คนเฒ่าคนแก่ล้วนแต่มีความรู้ดังกล่าว จึงสามารถอยู่รอดมาได้ และเลี้ยงลูกเลี้ยงหลานให้โตเป็นผู้เป็นคน คนในปัจจุบันทั่วไปต่างก็มีความรู้ความชำนาญที่แตกต่างกันไป พวกเขาไม่ได้บอกได้สอนใคร แต่สังเกตดูให้ดีก็จะเห็นความรู้ความชำนาญนั้น ไม่ว่าจะเป็นคนขายข้าวแกง ขายก๋วยเตี๋ยว ส้มตำ ไก่ย่าง ข้างถนน เขาได้เรียนรู้และสั่งสมประสบการณ์จำนวนหนึ่ง ทำจนเกิดความชำนาญ และอาจมีความรู้บางอย่างที่คนอื่นไม่รู้ เป็น "สูตรเด็ด-เคล็ดลับ" ของแต่ละคน เมื่อมีการถ่ายทอดให้ปรากฎก็กลายเป็น "ความรู้ชัดแจ้ง" (explicit knowledge) เกิดเป็นระบบความรู้ที่เชื่อมโยงกับชีวิต กับความรู้อื่นๆ สามารถเรียนรู้ สื่อสารกันและถ่ายทอดไปสู่คนอื่นได้ เรื่องความรู้สองอย่างนี้เห็นพูดกันพักหนึ่งแล้ว คงเป็นอีกมิติหนึ่งของเรื่องความรู้ ทฤษฎีความรู้ (Epistemology - ญาณวิทยา) ซึ่งมีมาตั้งแต่มีปรัชญาเมื่อคนถามว่า คนรู้ได้อย่างไร ความรู้เป็นอะไร สัมพันธ์กับชีวิตอย่างไร สัมพันธ์กับการมองโลกความเป็นจริงอย่างไร เป็นต้น ทฤษฎีความรู้เป็นหัวใจของทฤษฎีต่างๆ ทางสังคม เป็นฐานคิดเพื่อการอธิบายโลก อธิบายชีวิต ที่มาของแนวคิดทฤษฎีของวิชาการต่างๆ เรื่องความรู้ก็เปรียบได้กับ "สินทรัพย์"(asset) และ "ทุน"(capital) ซึ่งเรามักจะคิดถึงแต่สินทรัพย์และทุนที่เป็นเงิน ซึ่งคล้ายกับ "ความรู้ชัดแจ้ง" ในขณะที่สินทรัพย์และทุนของชุมชน คนท้องถิ่นมีมากกว่าเงินมากนัก แต่สินทรัพย์และทุนเหล่านั้น "ฝังลึก" ทำอย่างไรจะเอาสินทรัพย์และทุนท้องถิ่นที่ฝังลึก (tacit asset - tacit capital) ขึ้นมาให้ปรากฎชัดแจ้ง (explicit asset - explicit capital)

mbination, และ Internalization สำหรับ Socialization คือ การแบ่งปันและสร้าง Tacit Knowledge ด้วยการสื่อสารระหว่างกันในสิ่งที่เป็น Tacit Knowledge ของผู้ที่สื่อสารกัน ซึ่งจะเป็นการแลกเปลี่ยนประสบการณ์ตรง เช่น การมีปฏิสัมพันธ์ของบริษัทกับลูกค้าและผู้รับจ้างช่วง หรือลักษณะ "การจัดการด้วยการเดินเยี่ยมในที่ทำงาน" (Management by walking around, MBWA) เมื่อมีการแบ่งปันข้อมูลด้วยกระบวนการทางสังคมดังกล่าวแล้ว จะทำให้เกิดความคิด ใหม่ ๆ และความตระหนัก ถึงข้อมูลใหม่ ๆ ที่เปิดเผยออกมาและควรได้มีการเปลี่ยนให้เป็นรูปของภาษา ซึ่งก็คือ Explicit Knowledge กระบวนการลักษณะนี้เรียกว่า Externalization จากนั้น จะต้องมีการรวมตัวอย่างที่ได้เรียนรู้ของ Explicit Knowledge เข้าด้วยกัน ซึ่งจะทำให้เกิดความรู้ใหม่จากการกระทำดังกล่าว ในขั้นนี้ระบบสารสนเทศจะมีบทบาทสำคัญมาก ลักษณะการสร้างความรู้ขั้นสุดท้าย คือ ขั้น Internalization ซึ่งเป็นการนำความรู้ไปปฏิบัติทำให้มีการแปลง Explicit Knowledge ให้เป็น Tacit Knowledge โดยจะมองเห็นเป็นเทคโนโลยี สินค้า บริการ และการแก้ไขปัญหาให้แก่ลูกค้า และการมีปฎิสัมพันธ์กับลูกค้าก็จะนำกระบวนการกลับไปสู่วงจรเดิม คือ ขั้นแรกของการสร้างความรู้ คือ Socialization อีก

อ้างอิง :: http://www.phongphit.com/index.phpoption=com_content&task=view&id=173&Itemid=62

วันจันทร์ที่ 26 กรกฎาคม พ.ศ. 2553

องค์กรแห่งการเรียนรู้ (Learning Organization)

องค์การเรียนรู้ (Learning Organization) เป็นแนวคิดในการพัฒนาองค์การโดยเน้นการพัฒนาการเรียนรู้สภาวะของการเป็นผู้นำในองค์การ (Leadership) และการเรียนรู้ร่วมกัน ของคนในองค์การ (Team Learning) เพื่อให้เกิดการถ่ายทอดแลกเปลี่ยนองค์ความรู้ ประสบการณ์ และทักษะร่วมกัน และพัฒนาองค์การอย่างต่อเนื่องทันต่อสภาวะการเปลี่ยนแปลงและการแข่งขัน
การมีองค์การแห่งการเรียนรู้นี้จะทำให้องค์การและบุคลากร มีกระบวนการทำงานที่มีประสิทธิภาพและมีผลการปฏิบัติงานที่มีประสิทธิผล โดยมีการเชื่อมโยงรูปแบบของการทำงานเป็นทีม (Team working) สร้างกระบวนการในการเรียนรู้และสร้างความเข้าใจเตรียมรับกับความเปลี่ยนแปลง เปิดโอกาสให้ทีมทำงานและมีการให้อำนาจในการตัดสินใจ (Empowerment) เพื่อเป็นการส่งเสริมให้เกิดบรรยากาศของการคิดริเริ่ม (Initiative) และการสร้างนวัตกรรม (Innovation) ซึ่งจะทำให้เกิดองค์การที่เข้มแข็ง พร้อมเผชิญกับสภาวะการแข่งขัน
Learning Organization หรือ การทำให้องค์การเป็นองค์การแห่งการเรียนรู้ เป็นคำที่ใช้เรียกการรวมชุดของความคิดที่เกิดขึ้นมาจากการศึกษาเรื่องขององค์การ Chris Argyris ได้ให้แนวคิดทางด้าน Organization Learning ร่วมกับ Donald Schon ไว้ว่า เป็นกระบวนการที่สมาชิกขององค์การให้การตอบสนองต่อการเปลี่ยนแปลงของสภาพแวดล้อมภายในและภายนอก ด้วยการตรวจสอบและแก้ไขข้อผิดพลาดที่เกิดขึ้นเสมอ ๆ ในองค์การ
ความรู้จาก Organization Learning เป็นหลักการที่ Peter Senge ได้รวบรวมจากแนวคิดของ Chris Argyris และ Donald Schon รวมถึงนักวิชาการท่านอื่น มาเขียนหนังสือเล่มแรกเกี่ยวกับ Learning Organization ซึ่งมีชื่อว่า .”The Fifth Discipline”
แนวคิดของ Learning Organization
Chris Argyris และ Donald Schon ได้ให้คำนิยามการเรียนรู้สองรูปแบบที่มีความสำคัญในการสร้าง Learning Organization คือ Single Loop Learning ( First Order / Corrective Learning) หมายถึง การเรียนรู้ที่เกิดขึ้นแก่องค์การเมื่อการทำงานบรรลุผลที่ต้องการลักษณะการเรียนรู้แบบที่สองเรียกว่า Double Loop Learning (Second Oder/Generative Learning)หมายถึงการเรียนรู้ที่เกิดขึ้นเมื่อสิ่งที่ต้องการให้บรรลุผลหรือเป้าหมายไม่สอดคล้องกับผลการกระทำ
Peter Senge เชื่อว่าหัวใจของการสร้าง Learning Organization อยู่ที่การสร้างวินัย 5 ประการในรูปของการนำไปปฏิบัติของบุคคล ทีม และองค์การอย่างต่อเนื่อง วินัย 5 ประการที่เป็นแนวทางสนการปฏิบัติเพื่อสร้างกระบวนการเรียนรู้ทั้งองค์การมีดังนี้
1. Personnal Mastery : มุ่งสู่ความเป็นเลิศ และรอบรู้ โดยมุ่งมั่นที่จะพัฒนาตนเองให้ไปถึงเป้าหมายด้วย การสร้างวิสัยทัศน์ส่วนตน (Personal Vission) เมื่อลงมือกรทำและต้องมุ่งมั่นสร้างสรรจึงจำเป็นต้องมี แรงมุ่งมั่นใฝ่ดี (Creative Tention) มีการใช้ข้อมูลข้อเท็จจริงเพื่อคิดวิเคราะห์และตัดสินใจ (Commitment to the Truth) ที่ทำให้มีระบบการคิดตัดสินใจที่ดี รวมทั้งใช้การฝึกจิตใต้สำนึกในการทำงาน (Using Subconciousness) ทำงานด้วยการดำเนินไปอย่างอัตโนมัติ
2. MentalModel มีรูปแบบวิธีการคิดและมุมมองที่เปิดกว้าง ผลลัพธ์ที่จะเกิดจากรูปแบบแนวคิดนี้จะออกมาในรูปของผลลัพธ์ 3 ลักษณะคือ เจตคติ หมายถึง ท่าที หรือความรู้สึกของบุคคลต่อสิ่งใดสิ่งหนึ่ง เหตุการณ์ หรือเรื่องราวใด ๆ ทัศนคติแนวความคิดเห็นและกระบวนทัศน์ กรอบความคิด แนวปฏิบัติที่เราปฏิบัติตาม ๆ กันไป จนกระทั่งกลายเป็นวัฒนธรรมขององค์การ
3. Shared Vission การสร้างและสานวิสัยทัศน์ วิสัยทัศน์องค์การ เป็นความมุ่งหวังขององค์การที่ทุกคนต้องร่วมกันบูรณาการให้เกิดเป็นรูปธธรรมในอนาคต ลักษณะวิสัยทัศน์องค์การที่ดี คือ กลุ่มมผู้นำต้องเป็นฝ่ายเริ่มน้นเข้าสู่กระบวนการพัฒนาวิสัยทัศน์อย่างจริงจัง วิสัยทัศน์นั้นจะต้องมีรายละเอียดชัดเจน เพียงพอที่จะนำไปเป็นแนวทางปฏิบัติได้ วิสัยทัศน์องค์การต้องเป็นภพบวกต่อองค์การ
4. Team Learn การเรียนรู้ร่วมกันเป็นทีม องค์การความมุ่งเน้นให้ทุกคนในทีมมีสำนึกร่วมกันว่า เรากำลังทำอะไรและจะทำอะไรต่อไป ทำอย่างไร จะช่วยเพิ่มคุณค่าแก่ลูกค้า การเรียนรู้ร่วมกันเป็นทึมขึ้นกับ 2 ปัจจัย คือ IQ และ EQ ประสานกับการเรียนรู้ร่วมกันเป็นทึม และการสร้างภาวะผู้นำแก่ผู้นำองค์การทุกระดับ
5. System Thinking มีความคิดความเข้าใจเชิงระบบ ทุกคนควรมีความสามารถในการเข้าใจถึงความสัมพันธ์ระหว่างสิ่งต่าง ๆ ที่เป็นองค์ประกอบสำคัญของระบบนอกจากมองภาพรวมแล้ว ต้องมองรายละเอียดของส่วนประกอบย่อยในภาพนั้นให้ออกด้วย วินัยข้อนี้สามารถแก้ไขปัญหาที่สลับซับซ้อนต่าง ๆ ได้เป็นอย่างดี
ข้อจำกัดในการปรับใช้แนวคิดของ Learning Organization
Model ของ Learning Organization ไม่ได้เจาะจงวัฒนธรรมองค์การใดองค์การหนึ่งและไม่ได้วิเคราะห์ถึงข้อจำกัดด้านวัฒนธรรมองค์การทำให้ไม่ประสบความสำเร็จตามที่คาดหวัง กระบวนการในการนำ Learning Organization ไปใช้ยังไม่ชัดเจนขาดคนที่รู้จริง
ขอบเขตของการนำ Learning Organization กว้างมากทำให้ควบคุมได้ยาก ดัชนีที่ใช้วัดองค์การที่มีความเป็น Learning Organization ไม่ชัดเจน และการใช้เวลายาวนานในการมุ่งไปสู่การเป็น Learning Organization ทำให้ขาดกำลังใจ และหากมีการเปลี่ยนผู้นำ ความสนใจที่จะกระตือรือร้นต่อการเปลี่ยนแปลงของพนักงานในองค์การจะหายไป องค์ประกอบสำคัญของ Learning Organization จากมุมมองแบบCapability Perspective ในช่วงทศวรรษที่ผ่านมามีองค์การจำนวนมากที่พูดถึงแนวคิดของ Learning Organization แต่ยังขาดแนวทางและขั้นตอนที่ชัดเจนที่จะทำให้องค์การสามารถไปสู่ Learning Organization ได้อย่างแท้จริง โดยนักเขียนจำนวนมากได้พยายามคิดค้นหาองค์ประกอบต่าง ๆ ที่เหมาะสมต่อการเรียนรู้ทั่วทั่งองค์การ และสภาปนาองค์ประกอบเหล่านี้ไม่ครบถ้วนก็ยากที่จะปรับเปลี่ยนไปสู่การเป็น Learning Organization ได้อย่างสมบูรณ์
Peter Senge เป็นคนหนึ่งที่กำหนดองค์ประกอบที่จำเป็นสำหรับ Learning Organizationโดยร่วมกับทีมงานสรรหาองค์ประกอบที่จำเป็นจากหลายบริษัทในสหรัฐอเมริกา และค้นพบวินัย 5 ประการ ที่จำเป็นสำหรับการที่จะทำให้องค์การนั้น ๆ กลายเป็น Learning Organization
โดยการนำแนวคิดของ Senge ทำให้เขากลายเป็นปรมาจารย์ ด้าน Learning Organization ที่มีผู้รู้จักมากที่สุด ต่อมา Nevis และทีมงาน ได้นำเสนองานวิจัยชิ้นหนึ่งที่ได้เปลี่ยนแนวคิดกับการพัฒนา Learning Organization ไปอย่างสิ้นเชิง และได้สรุปพื้นฐานที่สำคัญต่อการ Learning Organization ไว้ 4 ประการ
องค์การทุกแห่งมีระบบการเรียนรู้ของตนเอง (All Organization Are Learning System)
รูปแบบการเรียนรู้ขององค์การสอดคล้องกับวัฒนธรรมองค์การ (Learning Comforms to Culture)
รูปแบบการเรียนรู้ผันแปรตามระบบการเรียนรู้ขององค์การ (Style Varies between Learning System)
มีกระบวนการพื้นฐานที่สามารถใช้เพื่อเสริมสร้างการเรียนรู้ขององค์การ (Generic Processes Facilitate Learning)
มุมมองที่สองนี้ได้มององค์การในทางบวกซึ่งตรงข้ามกับมุมมองแรกโดยได้มองว่าสิ่งที่องค์การควรทำเพื่อเสริมสร้างให้เกิด Learning Organization คือ การสร้างความแข็งแกร่งให้กับรูปแบบการเรียนรู้ที่เหมาะสมกับวัฒนธรรมขององค์การ การนำเอาวิธรการเรียนรู้แบบใหม่เข้าสู่องค์การจะต้องมีการพิจารณาว่าเหมาะสมกับวัฒนธรรมองค์การหรือไม่ และจะพิจารณาเปลี่ยนแปลงก็ต่อเมื่อรูปแบบการเรียนรู้ปัจจุบันไม่สามารถสร้างความได้เปรียบเชิบธุรกิจเหนือคู่แข่งทั้งในปัจจุบันและในอนาคนแล้วเท่านั้น โดยที่ Div Bella และ Nevis ได้เรียกมุมมองที่สองนี้ว่า Capability Perspective คือ เป็นการสร้าง Learning Organization จะขึ้นอยู่กับสมรรถภาพขององค์การเป็นหลักและเรียกมุมมองแบบที่หนึ่ง Normative Perspective คือ ไม่ว่าจะเป็นองค์การใดแนวทางการสร้าง Learning Organization จะเป็นแบบเดียวกันหมด ซึ่งจะมีปัญหาก็คือองค์การมีความเสี่ยงต่อการต่อต้านจากพนักงานสูงมาก และระยะเวลาในการปรับเปลี่ยนอาจใช้เวลานาน ทั้งนี้เนื่องมาจากองค์การแต่ละองค์การมีวัฒนธรรมองค์การที่าแตกต่างกัน การพยายามเปลี่ยนวิธีการเรียนรู้อย่างสิ้นเชิงย่อมทำได้ยากและใช้ระยะเวลานานในการพัฒนาองค์การ
องค์ประกอบขององค์การแห่งการเรียนรู้
องค์การแห่งการเรียนรู้ คือ การพัฒนาศักยภาพและขีดความสามารถของคนทำงานบนพื้นฐานของการเรียนรู้ (Learning Base) โดยมีกระบวนการ ดังนี้
1. กำหนดกลยุทธ์ที่เหมาะสมในเชิงปฏิบัติการ คือ
1.1 กลยุทธ์ชี้นำ (Surge Strategy) โดยคณะผู้บริหารระดับสูงร่วมรับผิดชอบและสนับสนุน
1.2 กลยุทธ์ปลูกฝัง(Cultivate Strategy) โดยให้คณะทำงานในสายงานด้านทรัพยากรบุคคลเป็นผู้รับผิดชอบ
1.3 กลยุทธ์ปฏิรูป (Transform Strategy) โดยคณะทำงานพิเศษจากทุก ๆ หน่วยงานในองค์การมาร่วมกันรับผิดชอบดำเนินการ
2. กำหนดแผนงานให้ชัดเจน ดังนี้
2.1 ปรับโครงสร้างในการบริหารให้เป็นการทำงานแบบทีม
2.2 จัดทำแผนทรัพยากรบุคคลให้สอดคล้องกับโครงสร้างในการบริหารงานให้มีลักษณะเป็นหารทำงานเป็นทีม โดยวางแผนพัฒนาองค์ความรู้ โดยการฝึกอบรม และพัฒนาประสบการณ์พร้อมทักษะจากการเรียนรู้ในที่ทำงาน
2.3 จัดทำแผนพัฒนาโครงสร้างพื้นฐานด้านอุปกรณ์ต่าง ๆ ที่จำเป็นต้องใช้ประกอบการฝึกอบรม และการเรียนรู้ประเภทต่าง ๆ เช่น ห้องฝึกอบรม ห้องประชุม โสตทัศนูปกรณ์ เป็นต้น
3. เปิดโอกาสให้ทุกคนได้รับรู้กลไกของการพัฒนาและผลกระทบทุก ๆ ด้านที่จะเกิดขึ้นจากการเปลี่ยนแปลง
4. พัฒนาพื้นฐานสำคัญขององค์การเรียนรู้ดังนี้
4.1 มุ่งสู่ความเป็นเลิศ (Personal Mastery) เพื่อให้เก่งในทุก ๆ ด้าน เก่งในการเรียนรู้ เก่งคิด เก่งทำ มีไหวพริบปฏิภาณ มีความเพียรพยายามตั้งแต่เยาว์วัยและใฝ่รู้อย่างเสมอต้นเสมอปลาย เพื่อให้สอดคล้องกับโลกยุคโลกาภิวัตน์ซึ่งเป็นโลกแห่งการเรียนรู้ (Knowledge-based) ที่ต้องมีการเรียนรู้ไปตลอดชีวิต โดยมีการคำนึงถึงประเด็นต่าง ๆ เหล่านี้
การสร้างวิสัยทัศน์ส่วนตน (Personal Vission) ซึ่งได้แก่ความคาดหวังของแต่ละคนที่ต้องการจะให้สิ่งต่าง ๆ เกิดขึ้นจริงในชีวิตของตน
มุ่งมั่นสร้างสรรค์ (Creative Tension) มีความขยัน ใฝ่ดี มีพัฒนาการอยู่ตลอดเวลา
ใช้ข้อมูลเพื่อวิเคราะห์และตัดสินใจ เพื่อให้มีระบบคิด และการตัดสินใจที่ดี
ฝึกใช้จิตใต้สำนึก (Subconcious) สั่งงาน เพื่อให้กากรทำงานเป็นไปโดยอัตโนมัติ และได้ผลงานที่ดี
4.2 รูปแบบวิธีการคิดและมุมมองที่เปิดกว้าง (Mental Model) ซึ่งเกี่ยวข้องกับประสบการณ์ที่ได้สะสมมาตั้งแต่เด็กกับพื้นฐานของวุฒิภาวะทางอารมณ์ของแต่ละบุคคล ทำให้ความคิดและความเข้าใจของแต่ละคนแตกต่างกัน และหากปล่อยให้ต่างคนต่างคิดจะกลายเป็นปัญหาใหญ่เพราะมีการยึดติด กับรูปแบบและวิธีการที่ตนเองคุ้นเคย ทำให้เป็นอุปสรรคต่อการเปลี่ยนแปลงและการปรับตัว
4.3 การสร้างและสานวิสัยทัศน์ (Share Value) ให้ทุกคนได้รู้ได้เข้าใจ จะได้สนับสนุนและมีส่วนร่วมในการดำเนินการให้เป็นรูปธรรม โดยมีการนำวิสัยทัศน์ที่ได้สร้างขึ้นมาเป็นเป้าหมายของการกำหนดแผนกลยุทธ์ เพื่อสานให้วิสัยทัศน์เป็นจริงด้วยแผนการปฏิบัติต่อไป
4.4 การเรียนรู้ร่วมกันเป็นทีม (Team Learn) เป็นการเน้นการทำงานเป็นทีมโดยให้ทุกคนในทีมงานใช้วิจารณญาณร่วมกันตลอดเวลาว่า กำลังทำงานอะไร จะทำให้ดีขึ้นอย่างไร เป็นการเรียนรู้ร่วมกันแลกเปลี่ยนประสบการณ์ซึ่งกันและกัน ช่วยเหลือเกื้อกูลสามัคคี ขยันคิด ขยันเรียนรู้ และขยันทำด้วยความเชื่อว่าการเรียนรู้ในลักษณะนี้จะช่วยเสริมสร้างอัจฉริยะภาพของทีมงาน
4.5 ความคิดความเข้าใจเชิงระบบ (System Thinking) เพื่อให้ทุกคนมีความเข้าใจชัดเจนถึงความสัมพันธ์ของสิ่งต่าง ๆ ทำให้มองทุกสิ่งทุกอย่างเป็นภาพรวม จะได้สามารถเผชิญกับภาวะวิกฤติ และการแข่งขันได้
5. พัฒนาพนักงานในระดับผู้นำองค์การ ไม่ว่าจะเป็นหัวหน้าโครงการ หรือหัวหน้าทีมงาน ให้มีความเข้าใจบทบาทของผู้นำในองค์การเรียนรู้จะได้มีการปฏิบัติติให้มีคุณลักษณะเป็นผู้มีความคิดริเริ่มสร้างสรรค์ เป็นผู้ถ่ายทอดความรู้ และเป็นผู้ให้การสนับสนุนผู้อื่นในการปฏิบัติงานให้ราบรื่น
6. มอบหมายพันธกิจ (Mision) และกระบวนงานต่าง ๆ แก่ทีมงานเพื่อให้สามารถบริหารและรับผิดชอบด้วยตัวเองได้ เป็นการเพื่ออำนาจให้แก่พนักงาน จะได้เกิดความคล่องตัว
7. สร้างวัฒนธรรมองค์การด้านการพัฒนา และปรับปรุงงานให้ดีขึ้นตลอดเวลา
8. ทำการประเมินผล (Assessment) เพื่อปรับปรุงผลงานเสมอ
Learning Organization transformation Process
ในการพัฒนา Learning Organization ในเชิง Capability Perspective ในมุมมองของ DI bella&Schein ที่เป็นรูปธรรมประกอบด้วย 3 ขั้นตอนหลัก คือ
ขั้นที่ 1 การวินิจฉัยวัฒนธรรมองค์การและประเมินรูปแบบการเรียนรู้ มีหลายองค์การที่ประสบความล้มเหลวจาการนำโปรแกรมสำเร็จรูปเพื่อสร้าง Learning Organization เข้ามาใช้โดยพิจารณาถึงความสอดคล้องกับวัฒนธรรมองค์การ ทั้งปัญหาการต่อต้านจากพนักงาน หรือการไม่สามารถบรรลุเป้าหมายที่ได้ตั้งไว้ถึงแม้จะจบสิน้นโครงการไปแล้วก็ตาม หาไม่ได้รับการวิเคราะห์ คัดเลือก วางแผน และจัดการอย่างเหมาะสม
การปรับเปลี่ยนไปสู่ Learning Organization ที่มีวัฒนธรรรมการเรียนรู้อย่างยั่งยืนย่อมไม่สามารถเกิดขึ้นได้อย่างแน่นอน การประเมินสถานะปัจจุบันประกอบด้วย 2 ส่วน คือการวินิจฉัยวัฒนธรรมองค์การ และการประเมินรูปแบบการเรียนรู้
การวินิจฉัยวัฒนธรรมองค์การ (Culture Diagnosis) ได้แบ่งวัฒนธรรมองค์การออกเป็น 3 ระดับ ในระดับแรกคือ Artifacts โดยสามารถเรียนรู้ได้จากการสังเกตด้วยตา เช่น การจัดการแผนผัง (Layout) ของบริษัท การแต่งกายของพนักงาน
ระดับที่ 2 คือ Espaused Values เป็นค่านิยมที่ทุกคนในองค์การสื่อถึงกันว่าอะไรเป็นสิ่งที่ดูกต้องควรทำ ซึ่งโดยมากจะถูกกำหนดโดยผู้นำขององค์การตั้งแต่ยุคก่อตั้งบริษัท
ระดับที่ 3 คือ Basic Underlining Assumtion เป็นความเชื่อ การรับ ความคิด และความรู้สึกที่กำหนดพฤติกรรมของคนในองค์การและเป็นระดับที่ยากที่สุดในการทำความเข้าใจและดึงออกมาให้เห็นเป็นรูปธรรม
Schein ได้ยกตัวอย่างค่อนข้างชัดเจนที่เกี่ยวกับความซับซ้อนในการประเมินวัฒนธรรมองค์การที่จะเข้าใจวัฒนธรรมองค์การอย่างแท้จริง จะสามารุทำได้โดยการสัมภาษณ์เท่านั้น เช่นบริษัทแห่งหนึ่งมีการจัดสำนักงานแบบเปิด (Open Space)ซึ่งแสดงให้เห็นArtifacts ที่ชัดเจน ทั้งนี้เป็นเพราะองค์การให้ความสำคัญกับค่านิยม Team Work และ Communication (Espaused Values)
แต่เมื่อได้สัมภาษณ์กับพนักงานหลัก ๆ ที่อยู่กับองค์การมานานกลับพบว่าระบบการประเมินผลงาน ให้รางวัลและการเลื่อนตำแหน่ง ล้วนผูกกับความสามารถส่วนบุคคลทั้งสิ้น จึงทำให้ทราบว่า Basic Underlining Assumption นั้นแท้จริงแล้วกลับเน้นที่การทำงานเพื่อปัจเจกบุคคลเป็นหลัก
การประเมินรูปแบบการเรียนรู้ (Learning Orientation Assessment)
การพิจารณารูปแบบการเรียนรู้ขององค์การ (Learning Orientation) นับเป็นขึ้นตอนที่สำคัญที่ต้องทำทันทีควบคู่กันไปกับการวินิจฉัยวัฒนธรรมองค์การ โดยองค์การจะเลือกรูปแบบการเรียนรู้ให้สอดคล้องกับวัฒนธรรมและสมรรถภาพขององค์การ โดยทั่วไปมีอยู่ด้วยกัน 7 ประเภท คือ
1.วิธีการหาความรู้ (Knowledge Source)
2.โฟกัสที่เนื้อหาหรือที่กระบวนการ (Content -process Focus)
3.การเก็บความรู้ (Knowledge Reserve)
4.วิธีการเผยแพร่ความรู้ (Dissemination Mode)
5.ขอบเขตการเรียนรู้ (Learning Scope)
6.Value Focus
7.Learn Focus
รูปแบบการเรียนรู้เหล่านี้ไม่มีสูตรสำเร็จว่าอะไรคือรูปแบบที่เหมาะสม เนื่องจากเป็นโครงสร้างที่ช่วยให้ทราบว่าองค์การมีการเรียนรู้อย่างไร (How Organization Learn)
ขั้นที่ 2 การวิเคราะห์เชิงกลยุทธ์ และการพัฒนากลยุทธ์เพื่อสร้าง Learning Organization
แนวทางหนึ่งที่นิยมใช้ คือ SWOT ซึ่งเป็นการวิเคราะห์หาจุดแข็ง จุดอ่อน โอกาส และอุปสรร เพื่อดูว่าโครงสร้างองค์การในปัจจุบันเหมาะสมกับสภาพแวดล้อมหรือไม่ แนวทางการพัฒนา Learning Organization คือการทำให้วิธีการเรียนรู้ที่องค์การใช้อยู่มีความแข็งแกร่งจนคู่แข่งตามไม่ทันกลยุทธ์ที่ใช้ในการพัฒนาองค์การแห่งการเรียนรู้มีดังต่อไปนี้
1. เน้นการปรับปรุง Facilitating Factors ในกรณีที่วัฒนธรรมองค์การและรูปแบบการเรียนรู้ ทำให้เกิดความได้เปรียบในทางธุรกิจ
2. เน้นการปรับเปลี่ยนวัฒนธรรมองค์การและรูปแบบการเรียนรู้ควบคู่กับการปรับปรุง Facilitating Factors
ในกรณีที่วัฒนธรรมองค์การและรูปแบบการเรียนรู้กลายเป็นจุดอ่อนขององค์การ
ขั้นที่ 3 กระบวนการปรับเปลี่ยนไปสู่ Learning Organization ครอบคลุม 2 วิธีการ คือ
การปรับปรุง Facilitating Factors แบ่งเป็น 10 แนวทาง คือ
1.Scanning Imparative การกระตุ้นให้พนักงานองค์การกระตือรือร้นเพื่อหาข้อมูลภายนอกองค์การ
2.Concern for Measurement การทำให้ทุกฝ่ายเห็นความสำคัญของผลต่างระหว่างระดับการปฏิบัติที่เป็นอยู่
3.Performance Gap การทำให้ทุกคนตื่นตัวและเห็นความสำคัญของผลต่างระหว่างระดับการปฏิบัติที่เป็นอยู่
4.Organization Curiousity การทำให้เกิดบรรยากาศในการทดลองความคิดใหม่ ๆ
5.Climate of Openness การทำให้หน่วยงานต่าง ๆ เชื่อใจซึ่งกันและกัน
6.Contious Education การสนับสนุนให้เกิดการศึกษาอย่างต่อเนื่องในหมู่พนักงาน
7.Operational Variety การทำให้พนักงานยอมรับวิธีการทำงานใหม่ ๆ
8.Multiple Leadership การทำให้เกิดผู้สนับสนุนในการเรียนรู้ เริ่มจากผู้จัดการในแต่ละส่วนงาน
9.Innovation Leadership การให้ผู้บริหารมีส่วนร่วมในการเรียนรู้ของพนักงานเพื่อสนับสนุนในทุกกิจกรรม
10.System Perspective การทำให้มองเห็นภาพการทำงานของทุกหนวนในองค์การอย่าเป็นระบบ เช่น การใช้ Job Rotation

นายวีระยุทธ สุสม
49043494343
sec.02
วิชา ระบบสารสนเทศเพื่อบริหารงานบุคคล
ที่มา : http://www.bloggang.com/mainblog.php?id=wbj&month=07-12-2007&group=29&gblog=11

วันศุกร์ที่ 23 กรกฎาคม พ.ศ. 2553

ภาษาคอมพิวเตอร์

ภาษาคอมพิวเตอร์หมายถึงภาษาใดๆที่ผู้ใช้งานใช้สื่อสารกับคอมพิวเตอร์หรือคอมพิวเตอร์ด้วยกันแล้วคอมพิวเตอร์สามารถทำงานตามคำสั่งนั้นได้คำนี้มักใช้เรียกแทนภาษาโปรแกรม แต่ความเป็นจริงภาษาโปรแกรมคือส่วนหนึ่งของภาษาคอมพิวเตอร์เท่านั้น และมีภาษาอื่นๆที่เป็นภาษาคอมพิวเตอร์เช่นกันยกตัวอย่างเช่นHTMLเป็นทั้งภาษามาร์กอัปและภาษาคอมพิวเตอร์ด้วยแม้ว่ามันจะไม่ใช่ภาษาโปรแกรม หรือภาษาเครื่องนั้นก็นับเป็นภาษาคอมพิวเตอร์ ซึ่งโดยทางเทคนิคสามารถใช้ในการเขียนโปรแกรมได้ แต่ก็ไม่จัดว่าเป็นภาษาโปรแกรม
ภาษาคอมพิวเตอร์สามารถแบ่งออกเป็นสองกลุ่มคือภาษาระดับสูง(highlevel)และภาษาระดับต่ำ(low level)ภาษาระดับสูงถูกออกแบบมาเพื่อให้ใช้งานง่ายและสะดวกสบายมากกว่าภาษาระดับต่ำ โปรแกรมที่เขียนถูกต้องตามกฎเกณฑ์และไวยากรณ์ของภาษาจะถูกแปล(compile)ไปเป็นภาษาระดับต่ำเพื่อให้คอมพิวเตอร์สามารถนำไปใช้งานหรือปฏิบัติตามคำสั่งได้ต่อไปซอฟต์แวร์สมัยใหม่ส่วนมากเขียนด้วยภาษาระดับสูง แปลไปเป็นออบเจกต์โค้ด(object code) แล้วเปลี่ยนให้เป็นชุดคำสั่งในภาษาเครื่อง
ภาษาคอมพิวเตอร์อาจแบ่งกลุ่มได้เป็นอีกสองประเภทคือภาษาที่มนุษย์อ่านออก(human-readable)และภาษาที่มนุษย์อ่านไม่ออก(nonhuman-readable)ภาษาที่มนุษย์อ่านออกถูกออกแบบมาเพื่อให้มนุษย์สามารถเข้าใจและสื่อสารได้โดยตรงกับคอมพิวเตอร์(แทบทุกชนิดเป็นภาษาอังกฤษ)ส่วนภาษาที่มนุษย์อ่านไม่ออกจะมีโค้ดบางส่วนที่ไม่อาจอ่านเข้าใจได้แต่ออกแบบมาเพื่อให้โค้ดกระชับซึ่งคอมพิวเตอร์จะสามารถประมวลผลได้ง่ายกว่า
ภาษาคอมพิวเตอร์ หมายถึงโปรแกรมหรือชุดคำสั่งที่โปรแกรมเมอร์เขียนเพื่อใช้สั่งงานตามรูปแบบและโครงสร้างของภาษาซึ่งแบ่งได้ 3 ระดับดังนี้คือ
ภาษาระดับต่ำ (Low Level Language) เป็นภาษาที่มนุษย์ทำความเข้าใจได้ยาก ส่วนใหญ่ต้องมความเข้าใจเกี่ยวกับสถาปัตยกรรมคอมพิวเตอร์ และฮาร์ดแวร์เป็นอย่างดีจึงจะสามารถ
เขียนโปรแกรมสั่งงานได้ มีข้อดีในส่วนที่เขียนโปรแกรมควบคุมฮาร์ดแวร์ แต่ละส่วนได้โดยตรงจึงทำงานได้เร็วแต่ไม่เหมาะที่จะใช้ในการพัฒนาโปรแกรมตัวอย่างของภาษาระดับต่ำได้แก่ภาษาเครื่อง(MachineLanguage)และภาษาแอสเซมบลี้ (Assembly Language) เป็นต้น
ภาษาระดับกลาง (Medium Level Language)เป็นภาษาที่ทำความเข้าใจได้ไม่ยากนัก เพราะมีลักษณะเป็นภาษาแบบโครงสร้าง ทำความเข้าใจได้ เหมือนกับภาษาระดับสูง แต่ทำงานได้รวดเร็วเหมือนกับภาษาระดับต่ำ สามารถใช้บนเครื่องที่มีความเร็วต่างกันโดยไม่ต้องดัดแปลงภาษาระดับกลางได้นำข้อดีของภาษาระดับต่ำ และระดับสูงมาพัฒนาเป็นภาษาระดับกลางดังนั้นภาษาระดับกลางจึงเป็นที่นิยมใช้กันแพร่หลาย ตัวอย่างของภาษาระดับกลางได้ภาษาซี เป็นต้น
ภาษาระดับสูง (High Level Language)เป็นภาษาที่ทำความเข้าใจได้ง่าย มีลักษณะ ของการใช้คำสั่งเป็นภาษาอังกฤษ ซึ่งใกล้เคียงกับภาษามนุษย์มาก การสั่งให้คอมพิวเตอร์ทำงาน จะต้องมีการแปลความหมายของคำสั่ง โดยใช้ตัวแปลภาษาทีละชุดคำสั่งที่เรียกว่า Interpreter หรือ แปลครั้งเดียวทั้งโปรแกรมที่เรียกว่า Compiler
ตัวอย่างภาษาคอมพิวเตอร์
ภาษาโปรแกรม คือภาษาประดิษฐ์ที่สามารถใช้ควบคุมกำหนดพฤติกรรมการทำงานของเครื่องจักรได้ โดยเฉพาะคอมพิวเตอร์ ภาษาโปรแกรมก็เหมือนภาษามนุษย์ที่จะต้องใช้วากยสัมพันธ์ (syntax)และความหมาย (semantic)เพื่อกำหนดโครงสร้างและตีความหมายตามลำดับ ภาษาโปรแกรมช่วยให้การสื่อสารในภารกิจสารสนเทศสะดวกมากขึ้นและถูกต้องแม่นยำตามขั้นตอนวิธี (algorithm) ในโลกนี้มีภาษาโปรแกรมมากกว่า 8,500 ภาษาที่แตกต่างกันไปและก็ยังมีภาษาใหม่เกิดขึ้นทุกๆ ปี ผู้ที่ใช้งานภาษาโปรแกรมเพื่อเขียนโปรแกรมเรียกว่า โปรแกรมเมอร์ (programmer)
ลักษณะของภาษาโปรแกรม
ภาษาโปรแกรมแต่ละภาษาสามารถพิจารณาว่าเป็นเซตของข้อกำหนดอย่างเป็นทางการของวากยสัมพันธ์ ศัพท์ และความหมายข้อกำหนดเหล่านี้มักรวมถึงข้อมูล และโครงสร้างข้อมูลคำสั่ง และลำดับการทำงานปรัชญาในการออกแบบ
สถาปัตยกรรมของภาษาภาษาส่วนใหญ่ที่มีการใช้งานอย่างกว้างขวาง หรือมีการใช้งานในระยะเวลาพอสมควร จะมีกลุ่มทำงานเพื่อสร้างมาตรฐาน ซึ่งมักจะมีการพบปะกันเป็นระยะๆ เพื่อสร้างและจัดพิมพ์นิยามอย่างเป็นทางการของภาษา รวมถึงการปรับปรุงเพิ่มเติมภาษาด้วย
ชนิดข้อมูล
การจัดเก็บข้อมูลภายในคอมพิวเตอร์สมัยใหม่นั้น ภายในแล้วจะเก็บเป็นตัวเลขศูนย์และหนึ่ง(เลขฐานสอง)อย่างไรก็ตาม ข้อมูลมักถูกแทนสารสนเทศในชีวิตประจำวันเช่น ชื่อบุคคล เลขบัญชี หรือผลการวัด ดังนั้นข้อมูลแบบฐานสองจะถูกจัดการโดยภาษาโปรแกรม เพื่อทำให้รองรับการจัดเก็บข้อมูลที่ซับซ้อนขึ้นเหล่านี้ระบบที่ข้อมูลถูกจัดการภายในโปรแกรมเรียกว่าชนิดข้อมูลของภาษาโปรแกรม การออกแบบและศึกษาเกี่ยวกับชนิดข้อมูลเรียกว่าทฤษฎีชนิด ภาษาโปรแกรมสามารถจัดออกได้เป็นกลุ่มภาษาที่มีการจัดชนิดแบบสถิตย์และภาษาที่มีการจัดชนิดแบบพลวัต
โครงสร้างข้อมูล
โครงสร้างข้อมูล คือรูปแบบของการจัดเก็บข้อมูล ที่เกิดจากการนำเอาตัวแปรประเภทต่าง ๆ กันมาประยุกต์รวมกันเพื่อให้ง่ายต่อการที่จะนำไปใช้ ในalgorithm ต่าง ๆ
ภาษาโปรแกรมที่นิยม
ภาษาซี (C) เป็นภาษาโปรแกรมบนคอมพิวเตอร์ที่มีวัตถุประสงค์ทั่วไป พัฒนาขึ้นเมื่อ พ.ศ. 2515 (ค.ศ. 1972) โดย เดนนิส ริตชี ที่เบลล์เทเลโฟนแลบอลาทอรีส์ (Bell Telephone Laboratories) เกิดขึ้นเพื่อสร้างระบบปฏิบัติการยูนิกซ์ในขณะนั้น นอกจากภาษาซีออกแบบขึ้นมาเพื่อสร้างซอฟต์แวร์ระบบแล้วภาษาซียังสามารถใช้อย่างแพร่หลายเพื่อพัฒนาซอฟต์แวร์ประยุกต์ที่เคลื่อนย้าย (portable) ไปบนระบบอื่นได้อีกด้วย

ภาษาซีเป็นภาษาโปรแกรมหนึ่งที่ได้รับความนิยมมากที่สุดตลอดกาล มีสถาปัตยกรรมคอมพิวเตอร์เพียงส่วนน้อยเท่านั้นที่ไม่มีตัวแปลโปรแกรมของภาษาซีภาษาซีมีอิทธิพลอย่างมากต่อภาษาโปรแกรมที่นิยมอื่นๆที่เด่นชัดที่สุดก็คือภาษาซีพลัสพลัส ซึ่งเดิมเป็นส่วนขยายของภาษาซี
การออกแบบ
ภาษาซีเป็นภาษาเขียนโปรแกรมระบบเชิงเงื่อนไข(หรือเชิงกระบวนงาน)ถูกออกแบบขึ้นเพื่อใช้แปลด้วยตัวแปลโปรแกรมแบบการเชื่อมโยงที่ตรงไปตรงมา สามารถเข้าถึงหน่วยความจำในระดับล่าง เพื่อสร้างภาษาที่จับคู่อย่างมีประสิทธิภาพกับชุดคำสั่งเครื่อง และแทบไม่ต้องการสนับสนุนใด ๆ ขณะทำงาน ภาษาซีจึงเป็นประโยชน์สำหรับหลายโปรแกรมที่ก่อนหน้านี้เคยเขียนในภาษาแอสเซมบลีมาก่อนหากไม่คำนึงถึงความสามารถในระดับล่าง ภาษานี้ถูกออกแบบขึ้นเพื่อส่งเสริมการเขียนโปรแกรมที่ไม่ขึ้นอยู่กับเครื่องใดเครื่องหนึ่ง (machine-independent) โปรแกรมภาษาซีที่เขียนขึ้นตามมาตรฐานและเคลื่อนย้ายได้ สามารถแปลได้บนแพลตฟอร์มคอมพิวเตอร์และระบบปฏิบัติการต่าง ๆ อย่างกว้างขวาง โดยแก้ไขรหัสต้นฉบับเพียงเล็กน้อยหรือไม่ต้องแก้ไขเลย ภาษานี้สามารถใช้ได้บนแพลตฟอร์มได้หลากหลายตั้งแต่ไมโครคอนโทรลเลอร์ฝังตัวไปจนถึงซูเปอร์คอมพิวเตอร์
แนวคิดการทำให้เล็กที่สุด
การออกแบบของภาษาซีถูกผูกมัดอยู่กับจุดประสงค์การใช้คือเป็นภาษาเขียนโปรแกรมระบบที่เคลื่อนย้ายได้ ภาษาซีจึงจัดเตรียมการเข้าถึงวัตถุใด ๆ ที่สามารถระบุตำแหน่งได้โดยตรงและง่ายดาย (ตัวอย่างเช่น รีจิสเตอร์ควบคุมอุปกรณ์ซึ่งจับคู่อยู่กับหน่วยความจำ) และนิพจน์ในรหัสต้นฉบับสามารถแปลอย่างตรงไปตรงมาตามพฤติกรรมเป็นคำสั่งเครื่องดั้งเดิมที่ทำงานได้ ตัวแปลภาษาซีรุ่นก่อนบางตัวทำงานได้บนหน่วยประมวลผลพีดีพี ซึ่งมีบิตอ้างตำแหน่งเพียง 16 บิตได้อย่างสบาย ตัวแปลภาษาซีเช่นแอซเท็กซี (Aztec C) สำหรับแพลตฟอร์ม 8 บิตทั่วไปก็สามารถทำงานได้เช่นกัน
ลักษณะเฉพาะ
ภาษาซีมีสิ่งอำนวยสำหรับการเขียนโปรแกรมเชิงโครงสร้าง และสามารถกำหนดขอบข่ายตัวแปรและเรียกซ้ำ เช่นเดียวกับภาษาโปรแกรมเชิงเงื่อนไขส่วนใหญ่ในสายตระกูลภาษาอัลกอล ในขณะที่ระบบชนิดตัวแปรแบบอพลวัตช่วยป้องกันการดำเนินการที่ไม่ได้ตั้งใจ รหัสที่ทำงานได้ทั้งหมดในภาษาซีถูกบรรจุอยู่ในฟังก์ชัน พารามิเตอร์ของฟังก์ชันส่งผ่านด้วยค่าของตัวแปรเสมอ ส่วนการส่งผ่านด้วยการอ้างอิงจะถูกจำลองขึ้นโดยการส่งผ่านค่าพอยเตอร์ ชนิดข้อมูลรวมแบบแตกต่าง(struct)ช่วยให้สมาชิกข้อมูลที่เกี่ยวข้องกันสามารถรวมกันและจัดการได้ในหน่วยเดียว รหัสต้นฉบับของภาษาซีเป็นรูปแบบอิสระ ซึ่งใช้อัฒภาค (;)เป็นตัวจบคำสั่ง (มิใช่ตัวแบ่ง)ภาษาซียังมีลักษณะเฉพาะต่อไปนี้เพิ่มเติมตัวแปรอาจถูกซ่อนในบล็อกซ้อนกันชนิดตัวแปรไม่เคร่งครัดเช่นข้อมูลตัวอักษรสามารถใช้เป็นจำนวนเต็มเข้าถึงหน่วยความจำคอมพิวเตอร์ในระดับต่ำโดยแปลงที่อยู่ในเครื่องด้วยชนิดตัวแปรพอยเตอร์ฟังก์ชันและพอยเตอร์ข้อมูลรองรับการทำงานในภาวะหลายรูปแบบ (polymorphism)การกำหนดดัชนีแถวลำดับสามารถทำได้ด้วยวิธีรอง คือนิยามในพจน์ของเลขคณิตพอยเตอร์ตัวประมวลผลก่อนสำหรับการนิยามแมโคร การรวมไฟล์รหัสต้นฉบับ และการแปลโปรแกรมแบบมีเงื่อนไข
ความสามารถที่ซับซ้อนเช่น ไอ/โอ การจัดการสายอักขระ และฟังก์ชันทางคณิตศาสตร์ รวมอยู่ในไลบรารีคำหลักที่สงวนไว้มีจำนวนค่อนข้างน้อยตัวดำเนินการแบบประสมจำนวนมาก อาทิ +=, -=, *=, ++ ฯลฯ
โครงสร้างการเขียน คล้ายภาษาบีมากกว่าภาษาอัลกอล ตัวอย่างเช่น ใช้วงเล็บปีกกา { ... } แทนที่จะเป็น begin ... end ในภาษาอัลกอล 60 หรือวงเล็บโค้ง ( ... ) ในภาษาอัลกอล 68เท่ากับ = ใช้สำหรับกำหนดค่า (คัดลอกข้อมูล) เหมือนภาษาฟอร์แทรน แทนที่จะเป็น := ในภาษาอัลกอลเท่ากับสองตัว == ใช้สำหรับเปรียบเทียบความเท่ากัน แทนที่จะเป็น .EQ. ในภาษาฟอร์แทรนหรือ = ในภาษาเบสิกและภาษาอัลกอลตรรกะ "และ" กับ "หรือ" แทนด้วย && กับ ตามลำดับ แทนที่จะเป็นตัวดำเนินการ ∧ กับ ∨ ในภาษาอัลกอล แต่ตัวดำเนินการดังกล่าวจะไม่ประเมินค่าตัวถูกดำเนินการทางขวา ถ้าหากผลลัพธ์จากทางซ้ายสามารถพิจารณาได้แล้ว เหตุการณ์เช่นนี้เรียกว่าการประเมินค่าแบบลัดวงจร (short-circuit evaluation) และตัวดำเนินการดังกล่าวก็มีความหมายต่างจากตัวดำเนินการระดับบิต & กับ คุณลักษณะที่ขาดไป
ธรรมชาติของภาษาในระดับต่ำช่วยให้โปรแกรมเมอร์ควบคุมสิ่งที่คอมพิวเตอร์กระทำได้อย่างใกล้ชิด ในขณะที่อนุญาตให้มีการปรับแต่งพิเศษและการทำให้เหมาะที่สุดสำหรับแพลตฟอร์มหนึ่งใดโดยเฉพาะ สิ่งนี้ทำให้รหัสสามารถทำงานได้อย่างมีประสิทธิภาพบนฮาร์ดแวร์ที่มีทรัพยากรจำกัดมาก ๆ ได้เช่นระบบฝังตัวภาษาซีไม่มีคุณลักษณะบางอย่างที่มีในภาษาอื่นอาทิไม่มีการนิยามฟังก์ชันซ้อนในไม่มีการกำหนดค่าแถวลำดับหรือสายอักขระโดยตรง (การคัดลอกข้อมูลจะกระทำผ่านฟังก์ชันมาตรฐาน แต่ก็รองรับการกำหนดค่าวัตถุที่มีชนิดเป็น struct หรือ union)ไม่มีการเก็บข้อมูลขยะโดยอัตโนมัติ
ไม่มีข้อกำหนดเพื่อการตรวจสอบขอบเขตของแถวลำดับไม่มีการดำเนินการสำหรับแถวลำดับทั้งชุดในระดับตัวภาษา
ไม่มีวากยสัมพันธ์สำหรับช่วงค่า (range) เช่น A..B ที่ใช้ในบางภาษาก่อนถึงภาษาซี99 ไม่มีการแบ่งแยกชนิดข้อมูลแบบบูล (ค่าศูนย์หรือไม่ศูนย์ถูกนำมาใช้แทน) ไม่มีส่วนปิดคลุมแบบรูปนัย (closure) หรือฟังก์ชันในรูปแบบพารามิเตอร์ (มีเพียงพอยเตอร์ของฟังก์ชันและตัวแปร)ไม่มีตัวสร้างและโครูทีน การควบคุมกระแสการทำงานภายในเทรดมีเพียงการเรียกใช้ฟังก์ชันซ้อนลงไป เว้นแต่การใช้ฟังก์ชัน longjmp หรือ setcontext จากไลบรารีไม่มีการจัดกระทำสิ่งผิดปรกติ (exception handling) ฟังก์ชันไลบรารีมาตรฐานจะแสดงเงื่อนไขข้อผิดพลาดด้วยตัวแปรส่วนกลาง errnoและ/หรือค่ากลับคืนพิเศษ และฟังก์ชันไลบรารีได้เตรียม goto แบบไม่ใช่เฉพาะที่ไว้ด้วยการเขียนโปรแกรมเชิงมอดูลรองรับแค่ระดับพื้นฐานเท่านั้นการโอเวอร์โหลดฟังก์ชันหรือตัวดำเนินการไม่รองรับภาวะหลายรูปแบบขณะแปลโปรแกรม
การเขียนโปรแกรมเชิงวัตถุรองรับในระดับที่จำกัดมาก โดยพิจารณาจากภาวะหลายรูปแบบกับการรับทอด (inheritance)
การซ่อนสารสนเทศ(encapsulation)รองรับในระดับที่จำกัดไม่รองรับโดยพื้นฐานกับการทำงานแบบมัลติเทรดและเครือข่ายคอมพิวเตอร์ไม่มีไลบรารีมาตรฐานสำหรับคอมพิวเตอร์กราฟิกส์และความจำเป็นหลายอย่างในการเขียนโปรแกรมประยุกต์คุณลักษณะเหล่านี้จำนวนหนึ่งมีให้ใช้ได้จากส่วนขยายในตัวแปลโปรแกรมบางตัว หรือจัดสรรไว้แล้วในสภาพแวดล้อมของระบบปฏิบัติการ(เช่นโพสซิกส์)หรือจัดเตรียมโดยไลบรารีภายนอก หรือสามารถจำลองโดยดัดแปลงแก้ไขรหัสที่มีอยู่ หรือบางที่ก็ถูกพิจารณาว่าไม่เหมาะสมกับรูปแบบการเขียนโปรแกรมที่ดี
พฤติกรรมไม่นิยาม
การดำเนินการหลายอย่างในภาษาซีมีพฤติกรรมไม่นิยาม ซึ่งไม่ถูกกำหนดว่าต้องวินิจฉัยขณะแปลโปรแกรม ในกรณีของภาษาซี "พฤติกรรมไม่นิยาม" หมายถึงพฤติกรรมเฉพาะอย่างที่เกิดขึ้นโดยมาตรฐานมิได้ระบุไว้ และสิ่งที่จะเกิดขึ้นก็ไม่มีในเอกสารการใช้งานของภาษาซี หนึ่งในชุดคำสั่งที่มีชื่อเสียงและน่าขบขันจากข่าวสารจากกลุ่ม comp.std.c และ comp.lang.c นั้นทำให้โปรแกรมเกิดปัญหาที่เรียกว่า "ปิศาจที่ออกมาจากจมูกของคุณ"("demons to fly out of your nose")บางครั้งสิ่งที่เกิดขึ้นในทางปฏิบัติอันเป็นผลมาจากพฤติกรรมไม่นิยามทำให้เกิดจุดบกพร่องที่ยากต่อการตรวจสอบและอาจทำให้ข้อมูลในหน่วยความจำผิดแปลกไป ตัวแปลโปรแกรมบางชนิดช่วยสร้างการดำเนินงานที่ทำให้พฤติกรรมนั้นดีขึ้นและมีเหตุผล ซึ่งแตกต่างจากการแปลโดยตัวแปลชนิดอื่นที่อาจดำเนินงานไม่เหมือนกัน สาเหตุที่พฤติกรรมบางอย่างยังคงไว้ว่าไม่นิยาม ก็เพื่อให้ตัวแปลโปรแกรมบนสถาปัตยกรรมชุดของคำสั่งเครื่องที่หลากหลาย สามารถสร้างรหัสที่ทำงานได้ในพฤติกรรมที่นิยามอย่างมีประสิทธิภาพมากขึ้น ซึ่งเชื่อว่าเป็นบทบาทหนึ่งที่สำคัญของภาษาซีในฐานะภาษาสำหรับสร้างระบบ ดังนั้นภาษาซีจึงส่งผลให้เกิดความรับผิดชอบของโปรแกรมเมอร์เพื่อหลีกเลี่ยงพฤติกรรมไม่นิยาม โดยอาจใช้เครื่องมือต่าง ๆ เพื่อค้นหาส่วนของโปรแกรมว่าพฤติกรรมใดบ้างที่ไม่นิยาม ตัวอย่างของพฤติกรรมไม่นิยามเช่น
-การเข้าถึงข้อมูลนอกขอบเขตของแถวลำดับ
-ข้อมูลล้น(overflow)ในตัวแปลจำนวนเต็มมีเครื่องหมาย
-ฟังก์ชันที่กำหนดไว้ว่าต้องส่งค่ากลับ แต่ไม่มีคำสั่งส่งกลับ (return) ในฟังก์ชัน ในขณะเดียวกันค่าส่งกลับก็ถูกใช้งานด้วย
-การอ่านค่าตัวแปรโดยที่ยังไม่ได้กำหนดค่าเริ่มต้น
-การดำเนินการเหล่านี้ทั้งหมดเป็นข้อผิดพลาดในการเขียนโปรแกรมซึ่งสามารถปรากฏในการใช้ภาษาโปรแกรมอื่นๆจำนวนมาก ภาษาซีจึงถูกวิพากษ์วิจารณ์เพราะมาตรฐานของมันสามารถชี้ให้เห็นถึงพฤติกรรมไม่นิยามในหลายกรณีได้อย่างชัดเจน รวมไปถึงพฤติกรรมบางอย่างที่อาจนิยามไว้อย่างดีแล้ว และไม่มีการระบุกลไกการจัดกระทำต่อข้อผิดพลาดขณะทำงานเลย
ตัวอย่างหนึ่งของพฤติกรรมไม่นิยามเช่นการเรียกใช้ fflush()บนกระแสข้อมูลป้อนเข้า ซึ่งไม่จำเป็นว่าจะทำให้โปรแกรมทำงานผิดพลาด แต่ในบางกรณีที่การทำให้เกิดผลที่สอดคล้องกันได้นิยามไว้แล้วอย่างดี มีความหมายซึ่งใช้ประโยชน์ได้ (จากตัวอย่างนี้คือการสมมติให้ข้อมูลที่ป้อนเข้าถูกละทิ้งทั้งหมดจนถึงอักขระขึ้นบรรทัดใหม่ตัวถัดไป)เป็น ส่วนขยาย ที่อนุญาต ส่วนขยายที่ไม่เป็นมาตรฐานเช่นนี้เป็นข้อจำกัดความสามารถในการเคลื่อนย้ายของซอฟต์แวร์
ประวัติ
การพัฒนาช่วงแรก
การเริ่มต้นพัฒนาภาษาซีเกิดขึ้นที่เบลล์แล็บส์ของเอทีแอนด์ทีระหว่าง พ.ศ. 2512–2516 [2] แต่ตามข้อมูลของริตชี ช่วงเวลาที่เกิดความสร้างสรรค์มากที่สุดคือ พ.ศ. 2515 ภาษานี้ถูกตั้งชื่อว่า "ซี" เพราะคุณลักษณะต่าง ๆ ต่อยอดมาจากภาษาก่อนหน้าคือ "บี" ซึ่งจากข้อมูลของเคน ทอมป์สัน (Ken Thompson) กล่าวว่าภาษาบีเป็นรุ่นที่แยกตัวออกจากภาษาบีซีพีแอลอีกทอดหนึ่ง
จุดเริ่มต้นของภาษาซีผูกอยู่กับการพัฒนาระบบปฏิบัติการยูนิกซ์อย่างใกล้ชิด ซึ่งเดิมพัฒนาด้วยภาษาแอสเซมบลีบนหน่วยประมวลผลพีดีพี-7โดยริตชีและทอมป์สัน โดยผสมผสานความคิดหลากหลายจากเพื่อนร่วมงาน ในตอนท้ายพวกเขาตัดสินใจที่จะย้ายระบบปฏิบัติการนั้นลงในพีดีพี-11 แต่ภาษาบีขาดความสามารถบางอย่างที่จะใช้คุณลักษณะอันได้เปรียบของพีดีพี-11 เช่นความสามารถในการระบุตำแหน่งที่อยู่เป็นไบต์ จึงทำให้เกิดการพัฒนาภาษาซีรุ่นแรกขึ้นมา

รุ่นดั้งเดิมของระบบยูนิกซ์บนพีดีพี-11ถูกพัฒนาขึ้นด้วยภาษาแอสเซมบลี เมื่อประมาณ พ.ศ. 2516 ภาษาซีเพิ่มชนิดข้อมูล struct ทำให้ภาษาซีเพียงพออย่างมีประสิทธิภาพ ซึ่งเคอร์เนลยูนิกซ์ส่วนใหญ่ถูกเขียนด้วยภาษาซี นี้ก็เป็นเคอร์เนลหนึ่งของระบบปฏิบัติการที่พัฒนาด้วยภาษาอื่นนอกเหนือจากภาษาแอสเซมบลี (ระบบอื่นเช่นมัลติกส์เขียนด้วยภาษาพีแอล/วัน เอ็มซีพีสำหรับเบอร์โรส์ บี5000เขียนด้วยภาษาอัลกอล ในปี พ.ศ. 2504)
ภาษาเคแอนด์อาร์ซี
เมื่อ พ.ศ. 2521 ไบรอัน เคอร์นิกัน (Brian Kernighan) และเดนนิส ริตชี ได้ตีพิมพ์หนังสือเล่มแรกชื่อ เดอะซีโปรแกรมมิงแลงกวิจ (The C Programming Language) [9] ซึ่งเป็นที่รู้จักในกลุ่มโปรแกรมเมอร์ภาษาซีว่า "เคแอนด์อาร์" (K&R อักษรย่อของผู้แต่งทั้งสอง) หนังสือเล่มนี้ทำหน้าที่เป็นข้อกำหนดของภาษาอย่างไม่เป็นทางการมาหลายปี ภาษาซีรุ่นดังกล่าวจึงมักถูกอ้างถึงว่าเป็น ภาษาเคแอนด์อาร์ซี (K&R C) ส่วนหนังสือที่ปรับปรุงครั้งที่สองครอบคลุมมาตรฐานแอนซีซีที่มีขึ้นทีหลัง ภาษาเคแอนด์อาร์ซีได้แนะนำคุณลักษณะหลายประการเช่น
-ไลบรารีไอ/โอมาตรฐาน
-ชนิดข้อมูล long int (จำนวนเต็มขนาดยาว)
-ชนิดข้อมูล unsigned int (จำนวนเต็มไม่มีเครื่องหมาย)
-ตัวดำเนินการกำหนดค่าแบบประสมในรูปแบบ =ตัวดำเนินการ (เช่น =-) ถูกเปลี่ยนเป็น ตัวดำเนินการ= (เช่น -=) เพื่อลด--ปัญหาความกำกวมเชิงความหมาย อย่างเช่นกรณี i=-10 ซึ่งจะถูกตีความว่า i =- 10 แทนที่จะเป็นอย่างที่ตั้งใจคือ i = -10
แม้ว่าหลังจากการเผยแพร่มาตรฐานของภาษาซีเมื่อ พ.ศ. 2532 ภาษาเคแอนด์อาร์ซีถูกพิจารณาว่าเป็น "ส่วนร่วมต่ำสุด" อยู่เป็นเวลาหลายปี (ความสามารถในการแปลรหัสจำนวนหนึ่งเป็นคำสั่งซึ่งทำงานได้บนเครื่องใดก็ตามเป็นอย่างน้อย) ซึ่งโปรแกรมเมอร์ภาษาซีต้องจำกัดความสามารถของพวกเขาในกรณีที่ต้องการให้ระบบสามารถใช้ได้กับหลายเครื่องมากที่สุด เนื่องจากตัวแปลโปรแกรมเก่า ๆ ก็ยังคงมีการใช้งานอยู่ และเขียนภาษาซีแบบเคแอนด์อาร์อย่างระมัดระวังเพื่อให้สามารถเข้ากันได้กับภาษาซีมาตรฐานเป็นอย่างดีในภาษาซีรุ่นแรก ๆ เฉพาะฟังก์ชันที่คืนค่าไม่เป็นจำนวนเต็ม จำเป็นต้องประกาศไว้ก่อนการนิยามฟังก์ชันหากมีการเรียกใช้ อีกนัยหนึ่งคือ ฟังก์ชันที่ถูกเรียกใช้โดยไม่มีการประกาศมาก่อน ถือว่าฟังก์ชันนั้นจะคืนค่าเป็นจำนวนเต็มหากค่าของมันถูกใช้งาน ตัวอย่างเช่น
long int SomeFunction();
/* int OtherFunction(); */

/* int */ CallingFunction()
{
long int test1;
register /* int */ test2;

test1 = SomeFunction();
if (test1 > 0)
test2 = 0;
else
test2 = OtherFunction();

return test2;
}
จากตัวอย่างข้างต้น การประกาศ int ที่ถูกคัดออก สามารถละเว้นได้ในภาษาเคแอนด์อาร์ซี แต่ long int จำเป็นต้องประกาศ
การประกาศฟังก์ชันของภาษาเคแอนด์อาร์ซีไม่มีการระบุข้อมูลเกี่ยวกับอาร์กิวเมนต์ที่ใช้ ดังนั้นจึงไม่มีการตรวจชนิดข้อมูลพารามิเตอร์ของฟังก์ชัน แม้ว่าตัวแปลโปรแกรมบางตัวจะแสดงข้อความเตือน ถ้าฟังก์ชันถูกเรียกใช้ภายในโดยมีจำนวนอาร์กิวเมนต์ที่ผิด หรือถ้าฟังก์ชันถูกเรียกใช้หลายครั้งจากภายนอกโดยมีชนิดข้อมูลของอาร์กิวเมนต์ต่างกัน เครื่องมือภายนอกอาทิ ลินต์ (lint) ของยูนิกซ์ถูกพัฒนาขึ้นเพื่อให้สามารถตรวจสอบความคงเส้นคงวาของฟังก์ชันที่ใช้งานข้ามไฟล์รหัสต้นฉบับหลายไฟล์
หลายปีถัดจากการเผยแพร่ภาษาเคแอนด์อาร์ซี คุณลักษณะที่ไม่เป็นทางการหลายอย่างก็ถูกเพิ่มเข้ามาในภาษา ซึ่งรองรับโดยตัวแปลโปรแกรมจากเอทีแอนด์ทีและผู้ผลิตรายอื่น คุณลักษณะที่เพิ่มเหล่านี้เช่น
-ฟังก์ชัน void
-ฟังก์ชันที่คืนค่าเป็นชนิดข้อมูล struct หรือ union (แทนที่จะเป็นพอยเตอร์)
-การกำหนดค่าให้กับชนิดข้อมูล struct
-ชนิดข้อมูลแจงนับ (enumerated type)
ส่วนขยายที่เพิ่มขึ้นอย่างมากและการขาดข้อตกลงในเรื่องไลบรารีมาตรฐาน อีกทั้งความนิยมในภาษาและข้อเท็จจริงที่ว่าไม่เพียงแต่ตัวแปลโปรแกรมยูนิกซ์เท่านั้นที่พัฒนาขึ้นตามข้อกำหนดของเคแอนด์อาร์ ทั้งหมดนำไปสู่ความสำคัญของการทำให้เป็นมาตรฐาน
ภาษาแอนซีซีและภาษาไอโซซี
ช่วงพุทธทศวรรษ2520ภาษาซีหลายรุ่นถูกพัฒนาขึ้นสำหรับเมนเฟรมคอมพิวเตอร์มินิคอมพิวเตอร์ และไมโครคอมพิวเตอร์อย่างกว้างขวางรวมทั้งไอบีเอ็มพีซี ซึ่งความนิยมของมันเริ่มเพิ่มขึ้นอย่างมีนัยสำคัญเมื่อ พ.ศ. 2526 สถาบันมาตรฐานแห่งชาติของสหรัฐอเมริกา (ANSI) ได้ก่อตั้งคณะกรรมการ เอกซ์3เจ11 ขึ้นมาเพื่อกำหนดมาตรฐานของภาษาซี ต่อมา พ.ศ. 2532 มาตรฐานดังกล่าวได้รับการอนุมัติเป็น ANSI X3.159-1989 "Programming Language C" ซึ่งภาษารุ่นนี้มักถูกอ้างถึงว่าเป็นภาษาแอนซีซี (ANSI C) ภาษาซีมาตรฐาน หรือภาษาซี89 (C89) ในบางครั้ง
เมื่อ พ.ศ. 2533 องค์การระหว่างประเทศว่าด้วยการมาตรฐาน (ISO) ได้รับเอามาตรฐานแอนซีซี (พร้อมการเปลี่ยนแปลงการจัดรูปแบบ) มาเป็น ISO/IEC 9899:1990 ซึ่งบางครั้งก็ถูกเรียกว่าภาษาไอโซซี (ISO C) หรือภาษาซี90 (C90) ดังนั้นคำว่า "ซี89" กับ "ซี90" จึงหมายถึงภาษาโปรแกรมเดียวกัน
แอนซีไม่ได้พัฒนามาตรฐานภาษาซีโดยเอกเทศอีกต่อไปแล้ว เหมือนเช่นองค์กรมาตรฐานแห่งชาติอื่น ๆ แต่ก็คล้อยตามมาตรฐานไอโซซี การรับเอามาตรฐานระดับชาติมาปรับปรุงเป็นมาตรฐานระดับสากล เกิดขึ้นภายในปีเดียวกับที่เผยแพร่มาตรฐานไอโซ
จุดมุ่งหมายหนึ่งของกระบวนการสร้างมาตรฐานให้ภาษาซีคือเพื่อสร้างซูเปอร์เซตของภาษาเคแอนด์อาร์ซี ผสมผสานคุณลักษณะต่าง ๆ ที่ยังไม่เป็นทางการซึ่งแนะนำต่อกันมา คณะกรรมการมาตรฐานได้รวมคุณลักษณะหลายประการเพิ่มเข้ามาอาทิ ฟังก์ชันโพรโทไทป์ (ยืมมาจากภาษาซีพลัสพลัส), พอยเตอร์ void, รองรับการจัดเรียงท้องถิ่น (locale) และชุดอักขระสากล, และการปรับปรุงตัวประมวลก่อนให้ดีขึ้น วากยสัมพันธ์สำหรับการประกาศพารามิเตอร์ถูกเพิ่มเข้ามาให้เหมือนกับรูปแบบที่ใช้ในภาษาซีพลัสพลัส แม้ว่าการเขียนแบบเคแอนด์อาร์ก็ยังสามารถใช้ได้เพื่อความเข้ากันได้กับรหัสต้นฉบับที่มีอยู่แล้ว
ภาษาซีรุ่นนี้ยังคงรองรับในตัวแปลโปรแกรมในปัจจุบัน และรหัสภาษาซีส่วนใหญ่ที่เขียนขึ้นทุกวันนี้ก็ใช้พื้นฐานมาจากรุ่นนี้ โปรแกรมใด ๆ ที่เขียนขึ้นด้วยภาษาซีมาตรฐานโดยไร้สมมติฐานว่าขึ้นอยู่กับฮาร์ดแวร์ใด จะทำงานได้อย่างถูกต้องบนแพลตฟอร์มใดก็ตามด้วยการพัฒนาภาษาซีที่สอดคล้องกันภายในทรัพยากรที่จำกัด หากไม่ระมัดระวังเช่นนั้น โปรแกรมอาจแปลได้เฉพาะบนแพลตฟอร์มหนึ่งหรือด้วยตัวแปลตัวหนึ่งเท่านั้น อันเนื่องมาจากการใช้ไลบรารีไม่มาตรฐานเช่นไลบรารีส่วนต่อประสานกราฟิกกับผู้ใช้ก็ดี หรือความเชื่อมั่นต่อสมบัติเฉพาะของแพลตฟอร์มหรือตัวแปลหนึ่ง ๆ เช่นขนาดที่แท้จริงของชนิดข้อมูลหรือการลำดับข้อมูลไบต์ (endianness) ก็ดี
ในกรณีที่ต้องเลือกว่ารหัสต้องถูกแปลด้วยตัวแปลภาษาซีมาตรฐานหรือภาษาเคแอนด์อาร์ซีอย่างใดอย่างหนึ่งการใช้แมโครSTDCสามารถช่วยให้แบ่งแยกรหัสส่วนมาตรฐานและส่วนเคแอนด์อาร์ออกจากกัน ซึ่งเป็นคุณลักษณะที่ได้เปรียบอีกอย่างหนึ่งที่มีเฉพาะในภาษาซีมาตรฐาน
ภาษาซี99
หลังจากกระบวนการทำให้เป็นมาตรฐานของแอนซี/ไอโซแล้ว ข้อกำหนดภาษาซียังคงนิ่งอยู่ชั่วระยะเวลาหนึ่ง ในขณะที่ภาษาซีพลัสพลัสกำลังก่อตัวด้วยความพยายามทำให้เป็นมาตรฐานของมันเอง การเพิ่มเติมกฎเกณฑ์ครั้งที่ 1 สำหรับมาตรฐานภาษาซีเผยแพร่เมื่อ พ.ศ. 2538 เพื่อแก้ไขรายละเอียดบางจุดและเพิ่มการรองรับชุดอักขระสากลให้มากขึ้น ต่อมามาตรฐานภาษาซีถูกเรียบเรียงดัดแปลงใหม่และนำไปสู่การเผยแพร่ ISO/IEC 9899:1999 ออกสู่สาธารณชนใน พ.ศ. 2542 ซึ่งมักถูกอ้างถึงว่า "ซี99" (C99) มาตรฐานนี้มีการเพิ่มเติมกฎเกณฑ์แล้วสามครั้งโดย TechnicalCorrigendaปัจจุบันมาตรฐานภาษาซีสากลดูแลและควบคุมโดยกลุ่ม ISO/IEC JTC1/SC22/WG14ภาษาซี99ได้แนะนำคุณลักษณะใหม่หลายประการอาทิ ฟังก์ชันแบบแทรก (inline function) ชนิดข้อมูลใหม่หลายชนิด (เช่น long long int และ complex สำหรับจำนวนเชิงซ้อน) แถวลำดับความยาวแปรได้ (variable-length array) แมโครอาร์กิวเมนต์แปรได้ (variadic macro) และหมายเหตุในหนึ่งบรรทัดที่ขึ้นต้นด้วย // เหมือนภาษาบีซีพีแอลหรือภาษาซีพลัสพลัส ซึ่งคุณลักษณะส่วนใหญ่เคยพัฒนาไว้แล้วเป็นส่วนขยายของตัวแปลภาษาซีหลายโปรแกรม

ภาษาซี99สามารถเข้ากันได้แบบย้อนหลังกับภาษาซี90เป็นส่วนใหญ่ แต่ก็จำกัดมากขึ้นในบางแง่มุม โดยเฉพาะการประกาศโดยไม่ระบุชนิด จะไม่ถูกสมมติว่าเป็น int อีกต่อไป แมโครมาตรฐาน STDC_VERSIONถูกนิยามขึ้นด้วยค่า 199901L เพื่อแสดงว่ารหัสนั้นรองรับภาษาซี99 ขณะนี้ จีซีซี ซันสตูดิโอ และตัวแปลโปรแกรมอื่น ๆ ก็รองรับคุณลักษณะใหม่ของภาษาซี99เป็นจำนวนมากหรือทั้งหมดแล้ว
ภาษาซี1เอกซ์
เมื่อ พ.ศ. 2550 มีกลุ่มทำงานหนึ่งเริ่มต้นขึ้นเพื่อปรับปรุงมาตรฐานภาษาซีอีกรุ่น ซึ่งเรียกชื่ออย่างไม่เป็นทางการว่า "ซี1เอกซ์" (C1X) คณะกรรมการนี้รับเอาแนวคิดต่าง ๆ เพื่อจำกัดการเลือกคุณลักษณะใหม่ที่ยังไม่เคยมีการทดสอบพัฒนามาก่อน
การใช้งาน
การเขียนโปรแกรมระบบเป็นการใช้งานหลักของภาษาซี ซึ่งรวมไปถึงการพัฒนาระบบปฏิบัติการและโปรแกรมประยุกต์ระบบฝังตัว เนื่องจากลักษณะเฉพาะอันเป็นที่ต้องการถูกรวมเข้าไว้ด้วยกัน อย่างเช่น ความสามารถในเคลื่อนย้ายได้กับประสิทธิภาพของรหัสต้นฉบับ ความสามารถในการเข้าถึงที่อยู่ของฮาร์ดแวร์ที่ระบุ ความสามารถเรื่อง type punning เพื่อให้เข้ากับความต้องการการเข้าถึงข้อมูลที่กำหนดไว้จากภายนอก และความต้องการทรัพยากรระบบขณะทำงานต่ำ ภาษาซีสามารถใช้เขียนโปรแกรมเว็บไซต์โดยใช้ซีจีไอเป็น "เกตเวย์" เพื่อแลกเปลี่ยนสารสนเทศระหว่างเว็บแอปพลิเคชัน เซิร์ฟเวอร์ และเบราว์เซอร์ [10] ปัจจัยบางอย่างที่ทำให้เลือกภาษาซีแทนที่จะเป็นภาษาอินเทอร์พรีตเตอร์ คือความเร็ว เสถียรภาพ และความอ่อนไหวต่อการเปลี่ยนแปลงในสภาพแวดล้อมของการดำเนินงาน เนื่องจากเป็นธรรมชาติของภาษาคอมไพเลอร์
ผลจากการยอมรับในระดับกว้างขวางและประสิทธิภาพของภาษาซี ทำให้ตัวแปลโปรแกรม ตัวแปลคำสั่ง ไลบรารีต่าง ๆ ของภาษาอื่น มักพัฒนาขึ้นด้วยภาษาซี ตัวอย่างเช่น ตัวแปลโปรแกรมภาษาไอเฟลหลายโปรแกรมส่งข้อมูลออกเป็นรหัสภาษาซีเป็นภาษากลาง เพื่อส่งต่อให้ตัวแปลโปรแกรมภาษาซีต่อไป การพัฒนาสายหลักของภาษาไพทอน ภาษาเพิร์ล 5 และภาษาพีเอชพี ทั้งหมดถูกเขียนขึ้นด้วยภาษาซี
ภาษาซีมีประสิทธิภาพสำหรับคอมพิวเตอร์เพื่องานคำนวณและวิทยาศาสตร์ เนื่องจากความสิ้นเปลืองต่ำ ธรรมชาติของภาษาระดับต่ำ ธรรมชาติของภาษาที่ถูกแปล และมีส่วนคณิตศาสตร์ที่ดีในไลบรารีมาตรฐาน ตัวอย่างของการใช้ภาษาซีในงานคำนวณและวิทยาศาสตร์ เช่นจีเอ็มพี ไลบรารีวิทยาศาสตร์ของกนู แมทเทอแมติกา แมตแล็บ และแซส
ภาษาซีบางครั้งใช้เป็นภาษาระหว่างกลางในการทำให้เกิดผลของภาษาอื่น แนวคิดนี้อาจใช้เพื่อความสะดวกต่อการเคลื่อนย้ายโดยให้ภาษาซีเป็นภาษาระหว่างกลาง ซึ่งไม่จำเป็นต้องพัฒนาตัวสร้างรหัสแบบเจาะจงเครื่อง ตัวแปลโปรแกรมที่ใช้ภาษาซีในทางนี้เช่น บิตซี แกมบิต จีเอชซี สควีก และวาลา เป็นต้น อย่างไรก็ตามภาษาซีถูกออกแบบมาเพื่อเป็นภาษาเขียนโปรแกรม ไม่ใช่ภาษาเป้าหมายของตัวแปลโปรแกรม จึงเหมาะสมน้อยกว่าสำหรับการใช้เป็นภาษาระหว่างกลาง ด้วยเหตุผลนี้นำไปสู่การพัฒนาภาษาระหว่างกลางที่มีพื้นฐานบนภาษาซีเช่น ภาษาซีไมนัสไมนัส

ผู้ใช้ขั้นปลายใช้ภาษาซีอย่างแพร่หลายเพื่อสร้างแอปพลิเคชันของผู้ใช้เอง แต่เมื่อแอปพลิเคชันใหญ่ขึ้น การพัฒนาเช่นนั้นมักจะย้ายไปทำในภาษาอื่นที่พัฒนามาด้วยกัน เช่นภาษาซีพลัสพลัส ภาษาซีชาร์ป ภาษาวิชวลเบสิก เป็นต้น
วากยสัมพันธ์
รหัสต้นฉบับของภาษาซีมีรูปแบบอิสระ ซึ่งสามารถใช้อักขระช่องว่างเท่าใดก็ได้ในรหัส มากกว่าที่จะถูกจำกัดด้วยคอลัมน์หรือบรรทัดข้อความอย่างภาษาฟอร์แทรน 77 ข้อความหมายเหตุจะปรากฏระหว่างตัวคั่น /* และ */ (แบบดั้งเดิม) หรือตามหลัง // จนกว่าจะจบบรรทัด (ภาษาซี99 เป็นต้นไป)
รหัสต้นฉบับแต่ละไฟล์ประกอบด้วยการประกาศและการนิยามฟังก์ชันต่าง ๆ และการนิยามฟังก์ชันก็ประกอบด้วยการประกาศและข้อความสั่งต่าง ๆ ภายในอีกด้วย การประกาศอาจกำหนดชนิดข้อมูลใหม่โดยใช้คำหลักเช่น struct, union และ enum หรือกำหนดค่าของชนิดข้อมูลและอาจสงวนเนื้อที่สำรองให้กับตัวแปรใหม่ โดยการเขียนชื่อของชนิดข้อมูลตามด้วยชื่อตัวแปร คำหลักอาทิ char และ int เป็นชนิดข้อมูลพื้นฐานที่มากับภาษา ส่วนต่าง ๆ ของรหัสถูกคลุมด้วยวงเล็บปีกกา { กับ } เพื่อจำกัดขอบเขตของการประกาศ และเพื่อกระทำเสมือนข้อความสั่งเดียวสำหรับโครงสร้างการควบคุม
ภาษาซีใช้ ข้อความสั่ง(statement)ในการระบุการกระทำเช่นเดียวกับภาษาเชิงคำสั่งอื่น ข้อความสั่งที่สามัญที่สุดคือ ข้อความสั่งนิพจน์ (expression statement)ซึ่งประกอบด้วยนิพจน์ที่จะถูกนำไปประเมินค่า ตามด้วยอัฒภาค ; จากผลข้างเคียงของการประเมินค่า ฟังก์ชันหลายฟังก์ชันอาจถูกเรียกใช้และตัวแปรหลายตัวอาจถูกกำหนดค่าใหม่ ภาษาซีได้เตรียมข้อความสั่งสำหรับควบคุมการไหลของโปรแกรมไว้หลายข้อความซึ่งดูได้จากคำสงวนต่าง ๆ ตัวอย่างเช่น การใช้ if-else เพื่อการทำงานแบบมีเงื่อนไข และการใช้ do-while, while และ for เพื่อการทำงานแบบวนรอบ เพื่อปรับเปลี่ยนการทำงานอันเป็นลำดับปกติ เป็นสิ่งที่รองรับสำหรับการเขียนโปรแกรมเชิงโครงสร้าง สำหรับข้อความสั่ง for นั้นมีนิพจน์ของการกำหนดค่าเริ่มต้น การทดสอบเงื่อนไข และการกำหนดค่ารอบใหม่ทั้งสามอย่างในตัวเอง ซึ่งสามารถละเว้นนิพจน์ใดก็ได้ ข้อความสั่ง break และ continue สามารถใช้ภายในการทำงานแบบวนรอบ เพื่อหยุดการวนรอบ หรือข้ามไปยังการกำหนดค่ารอบใหม่ทันทีตามลำดับ นอกจากนี้ยังมีข้อความสั่งที่ไม่เป็นเชิงโครงสร้างคือ goto ซึ่งจะทำให้การไหลของโปรแกรมข้ามไปยังป้าย (label) ที่ตั้งชื่อไว้ทันทีภายในฟังก์ชัน ข้อความสั่ง switch และ case ใช้สำหรับพิจารณาทางเลือกของการทำงานโดยพิจารณานิพจน์ที่เป็นจำนวนเต็ม
นิพจน์ต่าง ๆสามารถใช้ตัวดำเนินการที่มีมากับภาษาได้หลากหลาย(ดูด้านล่าง)และอาจมีการเรียกใช้ฟังก์ชัน อาร์กิวเมนต์ของฟังก์ชันและตัวถูกดำเนินการของตัวดำเนินการส่วนใหญ่ที่จะถูกประเมินค่านั้นไม่มีการระบุลำดับ การประเมินค่าจึงอาจแทรกซ้อนกันก็ได้ อย่างไรก็ตามผลกระทบที่เกิดขึ้นทั้งหมด (รวมทั้งที่เก็บข้อมูลตัวแปร) จะปรากฏก่อน จุดลำดับ (sequence point) ถัดไป จุดลำดับนั้นคือจุดสิ้นสุดของข้อความสั่งของแต่ละนิพจน์ และจุดที่เข้าและออกจากการเรียกใช้ฟังก์ชัน จุดลำดับก็ยังเกิดขึ้นระหว่างการประเมินค่านิพจน์ที่มีตัวดำเนินการบางชนิด (เช่น &&, , ?: และตัวดำเนินการจุลภาค) สิ่งนี้ทำให้การปรับแต่งรหัสจุดหมายให้เหมาะสมทำได้ในระดับสูง ซึ่งไม่จำเป็นต้องให้โปรแกรมเมอร์ภาษาซีใส่ใจมากนักเพื่อให้ได้ผลลัพธ์ที่เชื่อถือได้ ในขณะที่จำเป็นสำหรับภาษาโปรแกรมอื่น

ถึงแม้ว่าวากยสัมพันธ์ของภาษาซีจะถูกเลียนแบบโดยภาษาอื่นหลายภาษาเพราะว่าความเคยชินอย่างกว้างขวาง แต่ก็ถูกวิพากษ์วิจารณ์บ่อยครั้ง ตัวอย่างเช่น เคอร์นิกันและริตชีได้กล่าวในบทนำของ เดอะซีโพรแกรมมิงแลงกวิจ ไว้ว่า "ภาษาซีก็มีตำหนิของมันเหมือนภาษาอื่นใด ตัวดำเนินการบางตัวมีสิทธิการทำก่อนที่ผิด วากยสัมพันธ์บางส่วนสามารถทำให้ดีกว่านี้"
ปัญหาเฉพาะบางอย่างที่ควรหมายเหตุไว้มีดังนี้
ไม่มีการตรวจสอบจำนวนและชนิดของอาร์กิวเมนต์เมื่อการประกาศฟังก์ชันมีรายการพารามิเตอร์ว่าง (สิ่งนี้เพื่อความเข้ากันได้ย้อนหลังกับภาษาเคแอนด์อาร์ซี ซึ่งไม่มีโพรโทไทป์)
ทางเลือกที่น่าสงสัยของสิทธิการทำก่อนของตัวดำเนินการ ดังที่กล่าวถึงโดยเคอร์นิกันและริตชีข้างต้น เช่น == ที่วางอยู่ติดกับ & และ ในนิพจน์ดังตัวอย่าง x & 1 == 0 ตัวดำเนินการ == จะทำก่อนซึ่งไม่ใช่ผลที่คาดไว้ จำเป็นต้องใส่วงเล็บเพิ่ม (x & 1) == 0 เพื่อให้ & ทำก่อนตามต้องการ
ตัวดำเนินการ = ซึ่งใช้แสดงภาวะเท่ากันในคณิตศาสตร์ แต่ในภาษาซีใช้เพื่อการกำหนดค่าของตัวแปร โดยใช้ตามแบบที่มีอยู่ก่อนในภาษาฟอร์แทรน ภาษาพีแอล/วัน และภาษาเบสิก ไม่เหมือนภาษาอัลกอลและภาษาต่อยอดของมัน ริตชีตั้งใจเลือกรูปแบบนี้ด้วยเหตุผลหลักว่า อาร์กิวเมนต์ของการกำหนดค่าเกิดขึ้นบ่อยกว่าการเปรียบเทียบ
ความคล้ายกันของตัวดำเนินการกำหนดค่าและการเปรียบเทียบภาวะเท่ากัน (= และ ==) ทำให้เกิดความผิดพลาดจากการใช้เครื่องหมายผิดได้ง่าย ในหลายกรณีเครื่องหมายถูกใช้ในบริบทของอีกอันหนึ่งโดยไม่มีความผิดพลาดขณะแปล (แม้ว่าตัวแปลโปรแกรมปกติจะสร้างข้อความเตือนขึ้นมา) ตัวอย่างเช่น นิพจน์เงื่อนไขภายใน if (a = b) จะเป็นจริงถ้า a มีค่าไม่เป็นศูนย์หลังจากการกำหนดค่า [12] อย่างไรก็ตาม ข้อบกพร่องนี้อาจมีประโยชน์สำหรับการเขียนรหัสอย่างย่อในบางกรณี
การขาดตัวดำเนินการเติมกลางสำหรับวัตถุซับซ้อนหลายชนิด โดยเฉพาะการดำเนินการสายอักขระ ทำให้โปรแกรมที่ขึ้นอยู่กับการดำเนินการเหล่านี้มีขนาดใหญ่กว่าที่ควรเป็น (เพราะต้องสร้างฟังก์ชันขึ้นเอง) และทำให้รหัสอ่านยากขึ้นด้วย
รูปแบบของการประกาศที่บางครั้งไม่เป็นไปตามสามัญสำนึกโดยเฉพาะพอยเตอร์ฟังก์ชัน (แนวคิดของริตชีคือการประกาศตัวระบุในบริบทที่สัมพันธ์กับการใช้งานของมัน)
ตัวดำเนินการ
ภาษาซีรองรับตัวดำเนินการหลายประเภท ซึ่งเป็นสัญลักษณ์ที่ใช้ในนิพจน์เพื่อระบุการจัดการที่จะถูกทำให้เกิดผล ระหว่างการประเมินค่าของนิพจน์นั้น ภาษาซีมีตัวดำเนินการต่อไปนี้
พีชคณิต (+, -, *, /, %)
การกำหนดค่า (=)
การกำหนดค่าแต่งเติม (+=, -=, *=, /=, %=, &=, =, ^=, <<=, >>=)
ตรรกะระดับบิต (~, &, , ^)
การเลื่อนระดับบิต (<<, >>)
ตรรกะแบบบูล (!, &&, )
การประเมินค่าเชิงเงื่อนไข (?:)
การทดสอบภาวะเท่ากัน (==, !=)
การรวมอาร์กิวเมนต์ฟังก์ชัน (( ))
การเพิ่มค่าและการลดค่า (++, --)
การเลือกสมาชิกในวัตถุ (., ->)
ขนาดของวัตถุ (sizeof)
ความสัมพันธ์เชิงอันดับ (<, <=, >, >=)
การอ้างอิงและการถูกอ้างอิง (&, *, [ ])
การลำดับ (,)
การจัดกลุ่มนิพจน์ย่อย (( ))
การแปลงชนิดข้อมูล (( ))
ภาษาซีมีไวยากรณ์รูปนัยซึ่งระบุโดยมาตรฐานภาษาซี [13]
การแปลงจำนวนเต็ม จำนวนจุดลอยตัว และการปัดเศษ
วากยสัมพันธ์ของการแปลงชนิดข้อมูลสามารถใช้แปลงค่าต่าง ๆ ระหว่างชนิดข้อมูลจำนวนเต็มและจำนวนจุดลอยตัว (จำนวนทศนิยม) หรือระหว่างจำนวนเต็มสองจำนวน หรือระหว่างจำนวนจุดลอยตัวสองจำนวนที่มีขนาดแตกต่างกัน ตัวอย่างเช่น (longint)sqrt(1000.0), (double)(256*256) หรือ (float)sqrt(1000.0) เป็นต้น การแปลงชนิดข้อมูลเป็นภาวะปริยายในหลายบริบทอาทิ เมื่อกำหนดค่าให้กับตัวแปรหรือพารามิเตอร์ของฟังก์ชัน หรือเมื่อใช้จำนวนจุดลอยตัวเป็นดัชนีของเวกเตอร์ หรือในการดำเนินการทางเลขคณิตที่มีตัวถูกดำเนินการเป็นข้อมูลคนละชนิดกัน
การแปลงค่าระหว่างจำนวนเต็มและจำนวนจุดลอยตัวโดยทั่วไปจะเกิดการเปลี่ยนแปลงการเข้ารหัสระดับบิตไปยังขอบเขตที่เป็นไปได้เพื่อสงวนค่าจำนวนของตัวถูกดำเนินการนั้น ไม่เหมือนกับการแปลงชนิดข้อมูลกรณีอื่น(ซึ่งการเข้ารหัสระดับบิตของตัวถูกดำเนินการจะถูกตีความใหม่ตามชนิดเป้าหมายเพียงเท่านั้น)โดยเฉพาะอย่างยิ่ง การแปลงชนิดข้อมูลจากจำนวนเต็มไปเป็นจำนวนจุดลอยตัวจะคงไว้ซึ่งค่าจำนวนได้อย่างถูกต้องเว้นแต่ถ้าจำนวนบิตในชนิดเป้าหมายมีไม่เพียงพอ กรณีดังกล่าวจะทำให้บิตที่มีนัยสำคัญน้อยที่สุดสูญหายไป
ส่วนการแปลงชนิดข้อมูลจากจำนวนจุดลอยตัวไปเป็นจำนวนเต็มจะเกิดการตัดค่าหลังจุดทศนิยมอย่างหลีกเลี่ยงไม่ได้ (ค่าถูกปัดเศษเข้าหาศูนย์) สำหรับการปัดเศษชนิดอื่น ภาษซี99ได้ระบุไว้แล้วในฟังก์ชันดังนี้ (ใน )
round(): ปัดเศษไปยังจำนวนเต็มที่ใกล้สุด
rint(), nearbyint(): ปัดเศษตามทิศทางของจำนวนจุดลอยตัวปัจจุบัน
ceil(): ค่าจำนวนเต็มน้อยสุดที่ไม่น้อยกว่าอาร์กิวเมนต์ (ปัดขึ้น) ดูเพิ่มที่ฟังก์ชันเพดาน
floor(): ค่าจำนวนเต็มมากสุดที่ไม่มากกว่าอาร์กิวเมนต์ (ปัดลง) ดูเพิ่มที่ฟังก์ชันพื้น
trunc(): ปัดเศษเข้าหาศูนย์ (เหมือนกับการแปลงชนิดข้อมูลเป็นจำนวนเต็ม)
ฟังก์ชันทั้งหมดนี้รับอาร์กิวเมนต์ double และคืนค่าเป็น double ซึ่งต่อจากนี้ก็อาจแปลงชนิดข้อมูลเป็นจำนวนเต็มอีกทีหากจำเป็น
การแปลงชนิดข้อมูลจาก float ไปเป็น double จะคงไว้ซึ่งค่าจำนวนได้อย่างถูกต้อง ในขณะที่การแปลงกลับ ค่าจะถูกปัดเศษซึ่งมักเป็นการปัดเศษเข้าหาศูนย์ เพื่อให้พอดีกับจำนวนบิตที่น้อยลง (เนื่องจาก floatก็มีช่วงเลขชี้กำลังที่น้อยกว่าด้วย การแปลงชนิดข้อมูลอาจให้ผลเป็นค่าอนันต์แทน) ตัวแปลโปรแกรมบางโปรแกรมจะแปลงค่าของ float ไปเป็น double โดยเบื้องหลังในบางบริบทเช่น พารามิเตอร์ของฟังก์ชันที่ประกาศเป็น float ตามความเป็นจริงอาจส่งค่าเป็น double ก็ได้
เครื่องที่ทำตามมาตรฐานจำนวนจุดลอยตัวของIEEEเหตุการณ์การปัดเศษบางเหตุการณ์มีผลมาจากสถานะการปัดเศษปัจจุบัน (ได้แก่การปัดเศษเลขคู่ การปัดเศษขึ้น การปัดเศษลง และการปัดเศษเข้าหาศูนย์)ซึ่งอาจเรียกดูหรือตั้งค่าสถานะโดยใช้ฟังก์ชัน fegetround()/fesetround() ที่นิยามไว้ใน
ตัวอย่างโปรแกรม "เฮลโลเวิลด์"ซึ่งปรากฏอยู่ในหนังสือ เดอะซีโพรแกรมมิงแลงกวิจ ที่พิมพ์ครั้งแรก กลายมาเป็นตัวแบบของโปรแกรมเกริ่นนำในตำราการเขียนโปรแกรมส่วนใหญ่หากไม่คำนึงถึงภาษาที่ใช้เขียน โปรแกรมดังกล่าวจะแสดงผล "hello, world" ทางอุปกรณ์ส่งออกมาตรฐาน ซึ่งมักจะเป็นเครื่องปลายทางหรือหน่วยแสดงผลจอภาพ
รหัสโปรแกรมรุ่นดั้งเดิมเป็นดังนี้
main()
{
printf("hello, world\n");
}
และหลังจากการปรับเปลี่ยนรหัสให้เข้ากับมาตรฐาน รหัสจึงเป็นดังนี้

#include

int main(void)
{
printf("hello, world\n");
return 0;
}
บรรทัดแรกของโปรแกรมเป็นคำสั่งชี้แนะตัวประมวลผลก่อน (preprocessing directive)แสดงไว้โดย #include ทำให้ตัวประมวลผลก่อน (อันเป็นเครื่องมืออย่างแรกที่พิจารณารหัสต้นฉบับขณะแปล)นำเนื้อหาข้อความทั้งหมดของไฟล์ส่วนหัวมาตรฐาน stdio.h เข้ามาแทนที่บรรทัดนั้น ซึ่งไฟล์ดังกล่าวมีการประกาศฟังก์ชันสำหรับอุปกรณ์นำเข้าและส่งออกมาตรฐานอาทิ printf วงเล็บแหลมที่คลุมชื่อไฟล์ stdio.h (ซึ่งความจริงคือเครื่องหมายน้อยกว่า-มากกว่า) เป็นการแสดงว่า stdio.h ถูกกำหนดที่ตั้งโดยใช้กลยุทธ์การค้นหาที่ให้ความสำคัญต่อไฟล์ส่วนหัวมาตรฐาน มากกว่าไฟล์ส่วนหัวอื่นที่มีชื่อเดียวกัน อัญประกาศคู่อาจใช้ได้ในกรณีที่ต้องการนำไฟล์ส่วนหัวที่อยู่ใกล้เคียงหรือเจาะจงโครงการเข้ามารวม

บรรทัดถัดมาเป็นการนิยามฟังก์ชันชื่อว่า main ฟังก์ชัน main เป็นฟังก์ชันที่มีจุดประสงค์พิเศษในโปรแกรมภาษาซี สภาพแวดล้อมขณะทำงานจะเรียกใช้ฟังก์ชัน main เพื่อเริ่มต้นการทำงานโปรแกรม ตัวระบุชนิด int เป็นตัวแสดงว่า ค่าส่งคืน ที่ถูกส่งคืนโดยตัวที่เรียกใช้ (กรณีนี้คือสภาพแวดล้อมขณะทำงาน)จะเป็นจำนวนเต็มค่าหนึ่ง อันเป็นผลจากการประเมินค่าของฟังก์ชันmainคำหลัก void ในรายการพารามิเตอร์แสดงว่าฟังก์ชัน main ไม่ต้องใช้อาร์กิวเมนต์ วงเล็บปีกกาเปิดหมายถึงจุดเริ่มต้นของการนิยามฟังก์ชัน main
บรรทัดถัดมาเป็นการ เรียกใช้ ฟังก์ชันที่ชื่อว่า printf ซึ่งประกาศไว้ใน stdio.h และจัดเตรียมขึ้นจากไลบรารีของระบบ ในการเรียกใช้ครั้งนี้ ฟังก์ชัน printfจะถูก ผ่านค่า ด้วยอาร์กิวเมนต์หนึ่งตัวคือตำแหน่งหน่วยความจำของอักขระตัวแรกในสายอักขระ "hello, world\n"สายอักขระดังกล่าวคือแถวลำดับที่ไม่มีชื่ออันประกอบด้วยชนิดข้อมูลcharจะถูกสร้างขึ้นโดยอัตโนมัติโดยตัวแปลโปรแกรม และแถวลำดับจะมีอักขระค่าศูนย์ (null) เป็นสิ่งที่บ่งบอกจุดสิ้นสุดของสายอักขระ (printf จำเป็นต้องทราบสิ่งนี้) \n ที่ปรากฏในสายอักขระคือ ลำดับการหลีก (escape sequence) ภาษาซีจะตีความว่าเป็นอักขระ newline (ขึ้นบรรทัดใหม่) ซึ่งจะทำให้อุปกรณ์ส่งออกทราบว่าถึงจุดสิ้นสุดของบรรทัดปัจจุบัน ค่าส่งคืนจากฟังก์ชัน printf คือชนิด int แต่มันถูกละทิ้งไปอย่างเงียบ ๆ เนื่องจากไม่มีการใช้ (โปรแกรมที่ระมัดระวังมากกว่าอาจทดสอบค่าส่งคืน เพื่อพิจารณาว่าผลจากการทำงานของฟังก์ชัน printf สำเร็จหรือไม่) อัฒภาค ; เป็นจุดสิ้นสุดข้อความสั่ง
ข้อความสั่ง return เป็นการสิ้นสุดการทำงานของฟังก์ชัน mainและทำให้ฟังก์ชันส่งกลับเป็นจำนวนเต็มค่า 0 ซึ่งสภาพแวดล้อมขณะทำงานจะตีความว่าเป็นรหัสออกจากโปรแกรมที่แสดงว่าการทำงานประสบผลสำเร็จวงเล็บปีกกาปิดหมายถึงจุดสิ้นสุดของการนิยามฟังก์ชัน main



นายวีระยุทธ สุสม รหัส 49043494343
ระบบสารสนเทศเพื่อการจัดการ
Section 01 ห้องเรียน A301
อ้างอิงจาก
http://forum.datatan.net/index.php/topic,361.0.html

วันพฤหัสบดีที่ 15 กรกฎาคม พ.ศ. 2553

ข่าวไอที


Bing
เว็บเสิร์ชเอ็นจิน จากค่ายไมโครซอฟท์ แถลงสัดส่วนการตลาดที่ 12.7% หลังเปิดตัวครบ 1 ปี ลั่นพร้อมเป็นคู่แข่ง Google และ Yahoo เต็มสูบ ชูกลยุทธ์ค้นหาผ่านมือถือ “พิมพ์น้อยแต่ค้นหาได้เยอะ”…
เมื่อวันที่ 15 ก.ค.2553 สำนักข่าวบีบีซีรายงานว่า เจ้าหน้าที่ของ Bing เว็บเสิร์ชเอ็นจินจากค่ายไมโครซอฟท์ ประกาศสัดส่วนการเติบโตของ Bing ในตลาดที่เพิ่มสูงขึ้น จากข้อมูลของ ComScore บริษัทวิจัยด้านไอที พบว่า Google ครองส่วนแบ่งตลาดการค้นหาข้อมูล 62.6% Yahoo 18.9% และ Bing ได้ส่วนแบ่งตลาดการค้นหาข้อมูลเพียง 12.7% ตั้งแต่การเปิดตัวใน 12 เดือนที่ผ่านมา ในที่ประชุมผู้บริหารของไมโครซอฟท์ได้หยิบยกประเด็นการดำเนินการต่อไปของ Bing โดยแซทยา นาเดลโล เจ้าหน้าที่ออนไลน์ของไมโครซอฟท์กล่าวว่า ขณะนี้ Bing มีสัดส่วนทางการตลาดที่ยังน้อยเมื่อเทียบกับคู่แข่ง เสิร์ชเอ็นจินเป็นตลาดที่สร้างกำไรได้มหาศาล เราจึงหวังที่จะเติบโตขึ้นมากกว่านี้เพื่อสร้างรายได้ให้กับไมโครซอฟท์ ซึ่งจะเป็นไปไม่ได้เลยหากเราไม่ทำอะไรสักอย่าง ทั้งนี้ไมโครซอฟท์ได้ลงทุนใช้งบมหาศาลให้กับ Bing เพื่อสร้างความเป็นหนึ่งในด้านการค้นหาแผนที่ จากการวิจัยของ ComScore เผยว่า ส่วนแบ่งของ Google ในตลาดค้นหาข้อมูลในอเมริกาในเดือนมิถุนายน ลดลงจาก 63.7% เหลือ 62.6% ขณะที่ Yahoo เป็นอันดับสองอยู่ที่ 18.9% เพิ่มขึ้นจาก 18.3% ในเดือน พ.ค. เกร็ก สเตอร์ลิงค์ ผู้เชี่ยวชาญในแวดวงเว็บไซต์ กล่าวว่า Google ได้เป็นส่วนหนึ่งในชีวิตมนุษย์ที่ยากจะถูกคู่แข่งรายอื่นจัดการได้ ถ้า Bing อยากที่จะเป็นคู่แข่งที่สำคัญก็ต้องเติบโตให้ได้มากกว่า 30-40% ไมโครซอฟท์ทำการเปิดตัว Bing เว็บไซต์เสิร์ชเอ็นจินรายล่าสุดในเดือน มิ.ย. 2009 ภายใต้แนวคิด “การเข้าถึงที่เป็นมิตร” (consumer friendly approach) โดยให้ความสำคัญกับหัวข้อที่ได้รับความนิยม เช่น การท่องเที่ยว เอนเตอร์เทนเมนท์ ข่าวสาร แผนที่ อากาศ และการช็อปปิ้ง ซึ่งได้รับการตอบรับที่ดีจากกลุ่มผู้ใช้ส่วนหนึ่งและมีบัญชีผู้ใช้งานผ่านโทรศัพท์มือถือประมาณ 23ล้านคนในขณะนี้ ทั้งนี้ไมโครซอฟท์ประกาศว่า ในปีนี้จะโฟกัสไปที่ฟังก์ชั่นการค้นหาข้อมูลบนโทรศัพท์มือถือมากขึ้น ในช่วง6 เดือนที่ผ่านมา ไมโครซอฟท์ได้เปิดตัวอุปกรณ์เสริมสำหรับ iPhone ซึ่งมีใช้ในอมริกาดาวน์โหลดแล้วกว่า 4.3 ล้านคน เพื่อช่วยให้ผู้ใช้พิมพ์คำที่ใช้ค้นหาน้อยลงแต่ Bing สามารถค้นหาข้อมูลได้เพิ่มขึ้น (type less and do more) “คนจำนวนมากขับขี่รถยนต์ด้วยความรีบเร่งพร้อมๆไปกับการพิมพ์ข้อความบนโทรศัพท์มือถือ ดังนั้นเราจึงได้ออกแบบการทำงานให้สะดวกยิ่งขึ้น เพื่อให้ผู้ใช้พิมพ์ข้อความสั้นๆ หรือการค้นหาผ่านภาพ เสียง และการสัมผัส ซึ่งจะเป็นกลยุทธ์สำคัญให้ Bing เป็นผู้นำการค้นหาข้อมูลผ่านมือถือ” อีริค จอร์เกนเซน รองประธานอาวุโสด้านโทรศัพท์มือถือของไมโครซอฟท์ กล่าว.
โพสโดย ข่าวไอที / ที่มาของข่าว : ไทยรัฐออนไลน์ วันที่ 15 – 07 – 2553

วันจันทร์ที่ 1 กุมภาพันธ์ พ.ศ. 2553

โทโปโลยีแบบดาว

หน้าที่และหลักการทำงานโทโปโลยีแบบดาว (Star Topology)
เป็นรูปแบบที่เครื่องคอมพิวเตอร์ทุกเครื่องที่เชื่อมต่อเข้าด้วยกันในเครือข่าย จะต้องเชื่อมต่อกับอุปกรณ์ตัวกลางตัวหนึ่งที่เรียกว่า ฮัป (HUB) หรือสวิตช์ (Switch) หรือเครื่อง ๆ หนึ่ง ซึ่งทำหน้าที่เป็นศูนย์กลางของการเชื่อมต่อสายสัญญาณที่มาจากเครื่องต่าง ๆ ในเครือข่าย และควบคุมเส้นทางการสื่อสาร ทั้งหมด เมื่อมีเครื่องที่ต้องการส่งข้อมูลไปยังเครื่องอื่น ๆ ที่ต้องการในเครือข่าย เครื่องนั้นก็จะต้องส่งข้อมูลมายัง HUB หรือเครื่องศูนย์กลางก่อน แล้ว HUB ก็จะทำหน้าที่กระจายข้อมูลนั้นไปในเครือข่ายต่อไป



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

การขยายเพิ่มเติมระบบ
หากต้องการเพิ่มเครื่องคอมพิวเตอร์เข้าไปในเครือข่ายก็สามารถทำได้ทันทีโดยไม่ต้องหยุดการทำงานของเครือข่ายก่อน การต่อแบบสตาร์นี้เป็นแบบที่นิยมมากในปัจจุบัน
อุปกรณ์ที่ใช้กับโทโปโลยีแบบดาว (Star Topology)

สายนำสัญญาณ
สายนำสัญญาณนับถือได้ว่าเป็นอุปกรณ์ที่สำคัญอย่างหนึ่งในระบบเครือข่ายที่ทำให้คอมพิวเตอร์มีการติดต่อสื่อสาร กันในระยะทางที่ไกล สายนำสัญญาณ นั้นมีหลายชนิด มากมายในปัจจุบัน สามารถจำแนกได้ตามคุณสมบัติของสาย สภาพการใช้งาน และความเหมาะสมการใช้งาน สายนำสัญญาณที่ใช้ใน ระบบ LAN นั้นสามารถแบ่งออกได้เป็นลักษณะต่างๆคือสายสัญญาณแบบคู่บิดเกลียว ยังแบ่งออกเป็น 2 ประเภท ประเภท แรก เป็นชนิด UTP(Unshield Twisted Pair)เป็นสายคู่บิดเกลียว4คู่ใช้ยาวไม่เกิน 100 เมตร สายที่ใช้ แบคโบน นั้น เป็นสายขนาด 25 คู่สายในมัดเดียว รองรับการสื่อสารได้สูงถึง100Mbpsและ ประเภทที่ 2 ชนิด STP(Shield Twisted Piar)เป็นสายที่พัฒนามาจากสาย UTPโดยมีชีลด์ห่อหุ้มภายนอก ใช้ข้อมูลการสื่อสารได้ 100 Mbps สาย STP ที่เป็นแบคโบน นี้เป็นสายที่ออกแบบมาให้ไปได้ระยะทางที่ไกลขึ้น สายโคแอกเชียล เป็นอีกประเภทหนึ่งที่ใช้กันมากเป็นสายนำสัญญาญที่ ป้องกัน สัญญาณรบกวน ได้มากทีเดียว สายชนิดนี้ในระบบบัส และใช้เดินระยะใกล้ๆ และ เส้นใยแก้วนำแสง เป็นสายที่ใช้คลื่นแสง 500nM-1300nMส่งผ่านไปยังตัวกลาง สายใยแก้วนำแสง ซึ่งจะสะท้อนกลับภายใน ทำให้มี การสูญเสียสัญญาณ น้อยมาก ทำให้ได้ ระยะทางไกล ขึ้นขณะที่ใช้กำลังส่งที่น้อยและมี สัญญาณรบกวน ที่น้อยมาก เมื่อเทียบกับ สายนำสัญญาณ ชนิดอื่นๆ สาย ชนิด เส้น ใยแก้วนำแสง นี้มักใช้เป็นแบคโบน โดยจะรองรับการสื่อสารได้สูงถึง800Mbpsหรือมากกว่า แล้วแต่ล่ะชนิดที่นำมาใช้

อุปกรณ์ที่ใช้ต่อระหว่างเครือข่าย
อุปกรณ์ที่ใช้ต่อระหว่างเครือข่ายนั้นมีด้วยกันมากมาย ด้วยคุณลักษณะของการใช้งานแบบต่างๆและยังคงได้รับการพัฒนาขึ้นอยู่ตลอดเวลา อุปกรณ์ที่ใช้ในระบบ LANนั้นได้ยกตัวอย่างที่ พบกันมากดังต่อไปนี้แผ่นการ์ดเครือข่ายเป็นแผ่นอินเตอร์เฟสสำหรับคอมพิวเตอร์ หรือแผ่นการ์ดNICมีคุณสมบัติต่างที่ขึ้นอยู่กับชนิดของเครือข่าย และชนิดของคอมพิวเตอร์ อีกด้วย ฮับ(HUP)เป็นอุปกรณ์ต่อพ่วงระหว่างสายตามมาตรฐาน 802.3นั้นใช้เชื่อมโยงใน โทโปโลยี แบบสตาร์ ใช้สายUTPยาวไม่เกิน 100เมตรและยังสามารถ ขยาย PORT ได้มาก ซีดีรอมเซิร์ฟเวอร์(CD-ROM Server)เป็นอุปกรณ์ที่ใช้ในเครือข่ายเช่นเดียวกัน เพื่อใช้แบ่งปันการใช้ข้อมูลต่างๆ ใน CD-ROM เอง รีพีตเตอร์ (Repeater) เป็น อุปกรณ์ ที่ใช้ต่อระหว่างเครือข่าย เพื่อช่วยให้ขยายสัญญาณให้สูงขึ้น ทำให้ส่งข้อมูลหรือสื่อสารข้อมูลได้ไกลขึ้นนั้นเองบริดจ์(Bridge)เป็นอุปกรณ์ที่ใช้ต่อระหว่างระบบ โดยที่ บริดจ์ มีอยู่ 2ลักษณะด้วยกันคือแบบ Internal Bridge และแบบ External Bridge เกตเวย์ (Gateway)เป็น อุปกรณ์ ที่ทำงานคล้ายกัย Bridge แต่จะใช้ การเชื่อมต่อ กับระบบที่ใหญ่กว่ามี ประสิทธิภาพ ที่สูงกว่า และความเร็วที่สูงกว่าและ เราเตอร์ (Router)เป็นอีกอุปกรณ์หนึ่งที่เชื่อมต่อระหว่างเครือข่ายที่มีมากกว่า หนึ่งเซกเมนต์เพื่อกำหนดเส้นทางข้อมูลได้มากขึ้น ต่อไป

ซอฟต์แวร์ที่ใช้ใน ระบบ LAN
คือ ระบบปฏิบัติการ เครือข่ายประกอบด้วยซอฟต์แวร์ สามส่วนผลิตภัณฑ์บางชนิด รวมสามส่วนไว้ในโปรแกรมเดียวบางชนิดก็ซับซ้อนกว่า แบ่งงานออกเป็นโมดูล ลายตัว ส่วนแรกเป็นส่วนประกอบอยู่ในระดับล่างสุด กับหน้าที่จัดเตรียมและดูแลการเชื่อมต่อให้คงอยู่ ซอฟต์แวร์ส่วนนี้ ประกอบด้วยโปรแกรม ไดรเวอร์ สำหรับเน็ตเวิร์คอแดปเตอร์ ส่วนที่เหลืออีกสองส่วนหนึ่งคือส่วนที่อยู่ในสถานีงานจะสร้างข่าวสาร การร้องขอและส่งไปยังไฟล์เซิร์ฟเวอร์ ส่วนซอฟต์แวร์ ที่ใช้ในระบบ LANจากดาวถึง2โปรแกรม คือ Corbon Copy และ PC Anywhere โดยจะได้อธิบายถึงการทำงานและความสามารถของมัน Corbon Copyนั้นใช้งาน Novell LXและ NetBEUI ส่วน PC Anywhere เวอร์ชัน 4.5 นั้นเป็นภาพที่ทำงานด้วยเมนู มีการตรวจวิเคราะห์ Hard ware ที่คงอยู่ ลักษณะการทำงานส่วนใหญ่ของโปรแกรมซึ่งจะเกี่ยวกับ การใช้ Hard disk เมื่อเวิร์กสเตชัน ต้องการใช้ข้อมูล ก็ส่งคำสั่งไปยังเซิร์ฟเวอร์ เพื่อส่งให้ เซิร์ฟเวอร์ทำงาน แต่ในทางปฏิบัติงาน NetWare กระบวนการในการลำดับงานไม่สามารถกำหนดระดับ ความสามารถ ของงานได้ ดังนั้น งานที่มีการใช้งาน Hard disk มากๆ จะมีผลทำให้ การบริการกับงานอื่นๆ ช้าลงอย่างชัดเจน ซึ่งจะเป็นการทำงานที่สมบูรณ์ที่สุด

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

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

ข้อคิดเห็น
ถ้าเราเราเป็นเจ้าของกิจการ เราจะเลือก โทโปโลยีแบบใดมาใช้งาน
โทโปโลยีแบบดาว (Star Topology)เพราะว่าในระบบ โทโปโลยี แบบดาว นั้นจะเป็นลักษณะของ การต่อเครือข่าย ที่ Work station แต่ละตัวต่อรวมเข้าสู่ศูนย์กลางสวิตซ์ เพื่อสลับตำแหน่งของเส้นทางของข้อมูลใด ๆ ในระบบ ดังนั้นใน โทโปโลยี แบบดาว คอมพิวเตอร์จะติดต่อกันได้ใน 1 ครั้ง ต่อ 1 คู่สถานีเท่านั้น เมื่อสถานีใดต้องการส่งข้องมูลมันจะส่งข้อมูลไปยังศูนย์กลางสวิทซ์ก่อน เพื่อบอกให้ศูนย์กลาง สวิตซ์มันสลับตำแหน่งของคู่สถานีไปยังสถานีที่ต้องการติดต่อด้วย ดังนั้นข้อมูลจึงไม่เกิดการชนกันเอง ทำให้ การสื่อสาร ได้รวดเร็วเมื่อสถานีใดสถานีหนึ่งเสีย ทั้งระบบจึงยังคงใช้งานได้ ในการค้นหาข้อบกพร่องจุดเสียต่างๆ จึงหาได้ง่ายตามไปด้วย แต่ก็มีข้อเสียที่ว่าต้องใช้ งบประมาณ สูง ใน การติดตั้ง ครั้งแรก

อ้างอิง
http://www4.csc.ku.ac.th
http://guru.google.co.th
http://student.nu.ac.th


วันอังคารที่ 1 ธันวาคม พ.ศ. 2552

เทคโนโลยีเครือข่าย

ความรู้พื้นฐานของเทคโนโลยีเครือข่าย
ในปัจจุบันมีการนำคอมพิวเตอร์เข้ามาใช้งานในหน่วยงานประเภทต่างๆ มากมาย ซึ่งมีผลทำให้การทำงานในองค์กรหรือหน่วยงาน สามารถทำงานได้อย่างเป็นระบบ และสามารถพัฒนาการทำงานได้อย่างต่อเนื่อง ซึ่งการนำคอมพิวเตอร์เข้ามาใช้ในองค์กร หรือหน่วยงานก็เริ่มมีการพัฒนาขึ้นแทนที่จะใช้ในลักษณะหนึ่งเครื่องต่อหนึ่งคน ก็ให้มีการนำเครื่องคอมพิวเตอร์ และอุปกรณ์ต่างๆ มาเชื่อมต่อกัน เป็นระบบเครือข่ายคอมพิวเตอร์
เป้าหมายของเครือข่ายคอมพิวเตอร์
1. มีการใช้ทรัพยากรทางฮาร์ดแวร์ และซอฟต์แวร์ร่วมกัน เนื่องจากอุปกรณ์ทางคอมพิวเตอร์แต่ละชนิดราคาค่อนข้างสูง เพื่อให้ใช้ทรัพยากรเหล่านั้นอย่างมีประสิทธิภาพ จึงมีการนำเอาอุปกรณ์เหล่านั้นมาใช้ร่วมกันเป็นส่วนกลาง เช่น เครื่องพิมพ์,พลอตเตอร์,ฮาร์ดดิสก์ และโปรแกรมต่าง ๆ เป็นต้น
2. สามารถใช้ข้อมูลร่วมกันได้ สำหรับทุกคนที่อยู่ในระบบเครือข่าย โดยไม่ต้องสนใจว่าข้อมูลเหล่านี้จะเก็บอยู่ที่ใด เช่น ผู้ใช้คนหนึ่งอาจจะอยู่ห่างจากสถานที่ที่เก็บข้อมูลถึง 1000 กิโลเมตร แต่เขาก็สามารถใช้ข้อมูลนี้ได้เหมือนกับข้อมูลเก็บอยู่ที่เดียวกับที่ๆ เขาทำงานอยู่ และยังสามารถกำหนดระดับการใช้ข้อมูลของผู้ใช้แต่ละคนได้ ซึ่งจะเป็นการรักษาความปลอดภัยสำหรับข้อมูลซึ่งอาจเป็นความลับ
3. การติดต่อระหว่างผู้ใช้แต่ละคนมีความสะดวกสบายขึ้น หากผู้ใช้อยู่ห่างกันมาก การติดต่ออาจไม่สะดวก ระบบเครือข่ายคอมพิวเตอร์ มีบทบาทในการเป็นตัวกลางในการติดต่อระหว่างผู้ใช้แต่ละคน ซึ่งอาจจะเป็นการติดต่อในลักษณะที่ผู้ใช้ที่ต้องติดต่อด้วยไม่อยู่ ก็อาจฝากข้อความเอาไว้ในระบบ เมื่อผู้ใช้คนนั้นเข้ามาใช้ระบบก็จะมีการแจ้ง ข่าวสารนั้นทันที
การแบ่งประเภทเครือข่ายคอมพิวเตอร์ สามารถแบ่งได้ตามลักษณะต่างๆ ดังนี้คือ
ตามขนาด: แบ่งเป็น Workgroup , LAN , MAN และ WAN
ลักษณะการทำงาน: แบ่งเป็น peer-to-peer และ client-server
ตามรูปแบบ: แบ่งเป็น Bus ,Ring และ Star
ตาม bandwidth: แบ่งเป็น baseband และ broadband หรือว่าเป็น megabits และ gigabits
ตามสถาปัตยกรรม: แบ่งเป็น Ethernet หรือ Token-Ring
ในปัจจุบันเรานิยมจัดประเภทของเครือข่ายตามขนาดทางภูมิศาสตร์ที่ระบบเครือข่ายนั้นครอบคลุมอยู่ ได้แก่
1. ระบบเครือข่ายระยะใกล้ (LAN : Local Area Network) เป็นเครือข่ายซึ่งอุปกรณ์ทั้งหมดเชื่อมโยงกันอยู่ในพื้นที่ใกล้ๆ กัน เช่น อยู่ภายในแผนกเดียวกัน อยู่ภายในสำนักงาน หรืออยู่ภายในตึกเดียวกัน
2. ระบบเครือข่ายระยะไกล (WAN : Wide Area Network) เป็นเครือข่ายที่ประกอบด้วยเครือข่าย LAN ตั้งแต่ 2 วงขึ้นไปเชื่อมต่อกันในระยะทางที่ไกลมาก เช่น ระหว่างเมือง หรือระหว่างประเทศ
3. ระบบเครือข่ายบริเวณเมืองใหญ่ (MAN : Metropolitan Area Network) เป็นระบบที่เชื่อมโยงคอมพิวเตอร์ซึ่งอาจตั้งอยู่ห่างไกลกันในช่วง 5 ถึง 50 กิโลเมตร ผู้ใช้ระบบเครือข่ายแบบนี้มักจะเป็นบริษัทขนาดใหญ่ที่จำเป็นจะต้องติดต่อสื่อสารข้อมูลผ่านระบบคอมพิวเตอร์ด้วยความเร็วสูงมาก โดยที่การสื่อสารนั้นจำกัดอยู่ภายในบริเวณเมือง
สื่อที่ใช้ในการส่งข้อมูล
ในระบบเครือข่ายจะต้องมีสื่อที่ใช้ในการเชื่อมต่อสถานีงานต่างๆ ในเครือข่ายเข้าด้วยกัน เพื่อส่งข้อมูล ซึ่งสื่อเหล่านี้จะมีหลายแบบให้เลือกใช้ โดยแต่ละแบบเองก็จะมีจุดเด่นจุดด้อยแตกต่างกันออกไปตามแต่ว่าจะพิจารณาโดยยึดราคา หรือศักยภาพเป็นเกณฑ์
สื่อที่ใช้ในการส่งข้อมูล (Transmission media) แบ่งได้เป็น 3 ประเภทคือ
1. ประเภทมีสาย ได้แก่ สายคู่ไขว้ (Wire pair หรือ Twisied pair หรือสายโทรศัพท์), สายโคแอกเชียล (Coaxial Cables), เส้นใยแก้วนำแสง หรือไฟเบอร์ออฟติกส์ (Fiber optics)
2. ประเภทไม่มีสาย ได้แก่ ไมโครเวฟ (Microwave) และดาวเทียม (Satellite Tranmission)
3. ระบบอื่น ๆ ได้แก่ ระบบวิทยุ (Radio Transmission), ระบบอินฟาเรด (Infrared Transmission) และ ระบบโทรศัพท์เคลื่อนที่ (Cellular Transmission)
ประเภทมีสาย
1. สายคู่ตีเกลียว (Twisted-Pair Cable) เป็นสายที่มีราคาถูกที่สุด ประกอบด้วยสายทองแดงที่มีฉนวนหุ้ม 2 เส้น นำมาพันกันเป็นเกลียว จะใช้กันแพร่หลายในระบบโทรศัพท์ ความเร็วในการส่งข้อมูล 10 Mbps ส่งได้ในระยะทาง 1 mile สายคู่ตีเกลียวสามารถแบ่งได้เป็น 2 ชนิดคือ
1.1 สายคู่ตีเกลียวแบบไม่มีชิลด์ (Unshielded Twisted-Pair : UTP) เป็นสายเคเบิลที่ถูกรบกวนจากภายนอกได้ง่าย แต่ก็มีความยืดหยุ่นในการใช้งานสูงและราคาไม่แพง

ขั้นตอนการเข้าหัวแจ็คRJ45

การเข้าสายแลน และ ต่อสายแลน
ในระบบเครือข่ายการใช้สาย UTP นั้นหลายคนคงสงสัยอยู่ว่าบางครั้งเขาใช้สายธรรมดา บางครั้งใช้สาย Cross บ้าง แล้วสองสายนี้แตกต่างกันอย่างไรบ้าง ลองมาดูลักษณะการเชื่อมต่อภายในของสาย UTP 8 เส้นที่ว่าก่อนดีกว่าว่าเป็นยังไงบ้างดูรูปเลยแล้วกัน ถ้าเป็นการเข้าสายแบบธรรมดาหรือที่เขาใช้กันทั่วไป จะเป็นการต่อแบบที่ 1 ไป และ 2 ไป 2 จนถึง 8 ส่วนการไล่สีก็จะมีเป็นมาตรฐานกลาง ๆ ในการ ใช้ดังที่แสดงอยู่นั่นแหละ อันนี้เขาจะใช้เชื่อมต่อระหว่าง เครื่องคอมพิวเตอร์มาที่ HUB หรือ Switching




ส่วนข้างล่างนี้เป็นการเข้าสายที่เราเรียกว่า Cross Cable นั่นเอง สังเกตว่าจะเป็นการสลับระหว่าง 1,2,3,6 ซึ่งเขา มักจะใช้ในกรณีของเชื่อมต่อระหว่าง HUB-to-HUB โดยที่ไม่ผ่านทาง Uplink Port คือ ต่อจาก Port ธรรมดาไป Port ธรรมดา เขาต้องใช้สาย Cross และเราสามารถนำมาดัดแปลง ใช้กับเครื่องคอมพิวเตอร์สองเครื่องที่ต้องการต่อเป็น เครือข่ายโดยผ่านทางสาย UTP ได้โดยการใส่ LAN Card ลงที่เครื่องทั้งสองแล้วใช้สาย Cross ในการเชื่อมต่อเครื่อง ทั้งสองให้เป็นระบบเครือข่ายโดยไม่ต้องใช้ HUB ก็ได้





ส่วนสายอีก 4 เส้นที่เหลือคือ 4,5,7,8 ก็ไม่ต้องไปสลับอะไรกับมันก็ได้ เพราะว่าไม่ได้ใช้ในการส่งสัญญาณการต่อสายแลนการทำสายสัญญาณ เพื่อใช้เองในบ้านหรือในสำนักงานขนาดเล็กก็ได้ วิธีการก็ไม่มีอะไรมากอย่างแรกเลยก็จัดเตรียมเรื่องของอุปกรณ์ต่าง ๆ ที่จะต้องใช้ให้ครบถ้วนก่อนจะได้ไม่ต้องวิ่งหาตอนติดตั้ง โดยอุปกรณ์โดยทั่วไปก็มี สายสัญญาณหรือ UTP Cable หรือที่บ้านเราเรียกกันว่าสาย LAN แล้วก็หัว RJ-45 (Male), Modular Plug boots หรือตัวครอบสาย หากว่ามี Wry Marker แล้วก็จะมีเหมือนกันเพราะว่าจะช่วยในการทำให้เราจำสายสัญาณได้ว่าปลายด้านไหนเป็นด้านไหน ซึ่งโดยส่วนมากแล้วก็จะเป็นหมายเลข ไว้ใส่ในส่วนปลายทั้งสองด้านเพื่อให้ง่ายในการตรวจสอบระบบสายสัญญาณ คีมแค้มสายสัญญาณ หรือ Crimping Tool, มีดปอกสาย หรือ Cutter เอาละมาว่ากันเลยดีกว่าก่อนอื่นก็หยิบมีดหรือ Cutter อันเล็ก ๆ มาอันหนึ่งแล้วก็เล็งไปที่นิ้วจากนั้นก็ตัดนิ้วทิ้งไปซะ แล้วค่อยเอาหัว RJ มาต่อกับนิ้วแทน เท่านี้คุณก็สามารถเชื่อมต่อตัวคุณเองเข้าสู่ระบบเครือข่ายด้วยความไวสูงสุดถึง 100 มิลลิลิตรต่อนาที บางทีอาจจะเป็น Full Duplex Mode อีกต่างหาก ล้อเล่น ๆ เอาละนะใช้มีดปอกสายสัญญาณที่เป็นฉนวนหุ้มด้านนอกออกให้เหลือแต่ สายบิดเกลียวที่อยู่ด้านใน 8 เส้นแล้วก็จะเห็นด้ายสีขาว ๆ อยู่ให้ตัดทิ้งได้ โดยการปอกสายสัญญาณนั้นให้ปอกออกไว้ยาว ๆ หน่อยก็ได้ประมาณสัก 1 เซ็นครึ่งก็น่าจะได้นะตามตัวอย่างดังรูปข้างล่างนี้





จากนั้นก็ให้ใส่ Modular Plug boots เข้ากับสาย UTP ด้านที่กำลังจะต่อกับหัว RJ-45 ไว้ก่อนเลยดังรูปข้างล่างนี้






รูปแสดงคีมหรือ Crimping Tool ที่จะใช้ในการแค้มหัว อันนี้เป็นของยี่ห้อ Amp ราคาในตลาดก็คงประมาณ 5,000-6,000 บาทแต่ถ้าไม่ได้ใช้เยอะก็แนะนำให้เดินซื้อแถวพันทิพย์ หรือ ศูนย์คอมพิวเตอร์ที่มีอยู่ทุกมุมในปัจจุบันนี้ ถ้าเอาแบบพอใช้ได้ราคาก็ประมาณ 400-800 บาท คุณภาพก็พอใช้ได้นะ ผมก็เคยซื้อมาใช้หลายอันแล้ว แต่ของ Amp นี้ค่อนข้างน่าใช้และชัวร์กว่าเยอะในการเข้าสาย แต่ราคานี่สิผมว่ามันไม่ค่อยจะน่าสนเท่าไหร่ ถ้าเราไม่มีอาชีพในการทำงานด้านนี้เฉพาะหรือ ต้องมีการเดินระบบสายสัญญาณบ่อย ๆ



รูปของคีมหรือ Crimping Tool ด้านหน้าที่จะใช้แค้มสาย






หลังจากที่ปอกสายเสร็จแล้วก็ให้ทำการแยกสายทั้ง 4 คู่ที่บิดกันอยู่ออกเป็นคู่ ๆ ก่อนโดยที่ให้แยกคู่ต่าง ๆ ตามลำดับต่อไปนี้ ส้ม-ขาวส้ม --- > เขียว-ขาวเขียว --- > น้ำเงิน-ขาวน้ำเงิน --- > น้ำตาล-ขาวน้ำตาล เพื่อแบ่งสายออกเป็นหมวดหมู่ใหญ่ ๆ ก่อน จากนั้นจึงค่อยมาทำการแยกแต่ละคู่ออกมาเป็นเส้น โดยให้ไล่สีดังนี้
ขาวส้ม --- > ส้ม --- > ขาวเขียว --- > น้ำเงิน ---> ขาวน้ำเงิน --- > เขียว --- > ขาวน้ำตาล --- > น้ำตาล




ซึ่งสีที่ไล่นี้เป็นสีที่ใช้เป็นมาตรฐานในการเชื่อมต่อ ซึ่งจริง ๆ แล้วการเข้าสายมีมาตรฐานการไล่สีอยู่หลัก ๆ ก็ 2 แบบแต่ในที่นี้ผมเอาแบบนี้แล้วกันเพราะว่าส่วนมากแล้วเขาจะใช้วิธีการไล่สีแบบนี้ หลังจากจัดเรียงสีต่าง ๆ ได้แล้วก็ให้จัดสายให้เป็นระเบียบ ให้พยายามจัดให้สายแต่ละเส้นชิด ๆ กัน ดังรูป







หลังจากนั้นให้ใช้คีมตัดสายสัญญาณที่เรียงกันอยู่นี้ให้มีระบบปลายสายที่เท่ากันทุกเส้น โดยให้เหลือปลายสายยาวออกมาพอสมควร จากนั้นก็ให้เสียบเข้าไปในหัว RJ-45 ที่เตรียมมา โดยให้หันหัว RJ-45 ดังรูปจากนั้นค่อย ๆ ยัดสายที่ตัดแล้วเข้าไป โดยพยายามยัดปลายของสาย UTP เข้าไปให้สุดจนชนปลายของช่องว่าในหัว RJ-45 เลย




จุดสำคัญอีกอย่างหนึ่งในการเชื่อมต่อสายสัญญาณในช่วงนี้ก็คือต้องยัดฉนวนหุ้มที่หุ้มสาย UTP นี้เข้าไปในหัว RJ-45 ด้วย โดยพยายามยัดเข้าไปให้ได้ลึกที่สุดแล้วกัน เพื่อเป็นการป้องกันไม่ให้เกิดการหักงอของสายง่าย โดยให้ยัดเข้าไปให้ได้ดังรูปข้างล่างนี้




แล้วก็นำเข้าไปใส่ในช่องที่เป็นช่องแค้มหัวของ RJ-45 ในคีมที่จะใช้แค้มหัว หรือ Crimping Tool ให้ลงล็อกของคีมพอดี จากนั้นก็ให้ทำการกดย้ำสายให้แน่น เพื่อให้ Pin ทีอยู่ในหัว RJ-45 นั้นสัมผัสกับสายทองแดงที่ใส่เข้าไป บรรจงนิดหนึ่งนะครับในช่วงนี้ เพราะว่าเป็นช่วงหัวเลียวหัวต่อของชีวิตสายสัญญาณของคุณเลยแหละ เท่าที่ประสบการในการเข้าสายสัญญาณของผม ถ้าเป็นไอ้เจ้า Amp นี่ก็ไม่ต้องออกแรงมากเท่าไหร่ก็ OK ได้เลย แต่ถ้าเป็นแบบของทั่ว ๆ ไปก็คงต้องออกแรงกดกันนิดหนึ่งแล้วกัน







ที่สุดก็จะได้ปลายสัญญาณของระบบที่คุณต้องการดังกล่าวดังรูป ที่นี้ก็ไปทำอย่างที่ว่ามานี้อีกครั้งหนึ่งที่ปลายสายอีกด้านหนึ่ง แต่อย่าหลงเข้าใจผิดว่านี่เป็นสาย Cross นะ เพราะว่าสาย Cross นั้นคุณต้องทำการสลับสายสัญญาณที่เข้านี้ ลองไปดูหัวข้อ Tip of the Day นะผมแนะนำการเข้าสาย Cross ไว้ที่นั่นแล้ว เพราะว่าการเข้าสายทั้งสองแบบนี้การไล่สีของสายไม่เหมือนกัน แตกต่างกันนิดหน่อย ส่วนสาย Cross เราสามารถนำเอาไปเชื่อมต่อเครื่องคอมพิวเตอร์ 2 เครื่องให้เป็นระบบเครือข่ายได้โดยที่ไม่ต้องใช้ HUB ได้เลย แต่ได้แค่ 2 เครื่องเท่านั้น ส่วนสายแบบที่ต่อตรง ๆ นั้นจะใช้เชื่อมต่อจากเครื่องคอมพิวเตอร์มายัง HUB

สิ่งที่ได้จากการสอบปฏิบัติการเข้าหัว RJ-45
1.ได้รู้มาตราฐานของสาย lan และ หัวRJ-45
2.ได้รู้ขั้นตอนการจั๊มหัว RJ-45
3.ได้รู้จักการกะการประมาณขนาดของสายที่ใส่ได้
4. สามารถนำไปใช้ในชีวิตประวันได้
5. สามารถนำไปสอนกับบุคคลอื่นๆได้
6. สามารถนำมาประกอบอาชีพของเราได้
นายวีระยุทธ สุสม
รหัส 49043494343
sect.03
ผู้จัดทำ