حاليًا، يمكن استخدام النسخة التجريبية من لغة برمجة Carbon، ولم يتم توفير نسختها الرسمية والأولية. ومع ذلك، من الممكن شرح مقتطفات التعليمات البرمجية البسيطة لهذه اللغة ومنها أوامر لغة البرمجة Carbon البسيطة. الملف المسمى format_only.carbon في المثال السابق لطباعة Hello World! مستخدم يحتوي على مقتطف الشفرة التالي:

package ExplorerTest api;
fn Main() -> i32 {

  var s: auto = "Hello world!";

  Print(s);

  return 0;}

في هذا المثال:

  • تُستخدم الكلمة الأساسية Package للإعلان عن “Package”.
  • تُستخدم الكلمة الأساسية fn أيضًا لتعريف وظيفة تسمى Main()
  • يحدد التعبير i32 أيضًا نوع إخراج الدالة Main()، والتي في هذا المثال، يكون ناتج الوظيفة من النوع العددي.
  • تُستخدم الكلمة الأساسية var أيضًا لتحديد متغير.
  • باستخدام العلامة : يمكن تحديد نوع المتغير بعد اسم المتغير.
  • في نهاية كل سطر من الكود، توجد أيضًا علامة ؛
  • يمكن استخدام الكلمة الرئيسية let لتعريف “الثوابت”.
  • تحدد العلامة // أيضًا الوصف.

أنواع البيانات في لغة برمجة الكربون هي:

  • النوع boolean: يمكن استخدام نوع البيانات هذا لتخزين قيم True و False.
  • نوع integer: يستخدم هذا النوع من البيانات لتخزين القيم الرقمية. يحتوي النوع الصحيح على فئتين، الفئة الأولى تستخدم لتخزين الأرقام الموقعة والفئة الثانية تستخدم لتخزين الأرقام غير الموقعة. تشمل الفئة الأولى i8 و i16 و i32 و i64 و i128 و i256 والفئة الثانية تشمل u8 و u16 و u32 و u64 و u128 و u256.
  • نوع Float: يستخدم هذا النوع من البيانات لتخزين القيم العشرية، والتي تشمل f16 و f3 و f64 و f128.
  • نوع string: يستخدم هذا النوع من البيانات لتخزين قيم السلسلة. السلاسل مضمنة في “”.

أوامر شرطية في لغة برمجة الكربون

الأوامر الشرطية في لغة برمجة الكربون تشبه الأوامر الشرطية في لغات البرمجة الأخرى، وخاصة لغة C++. في هذه اللغة، يتم وضع أكواد الجسد للعبارات الشرطية بين علامتين {}. فيما يلي مثال على الأوامر الشرطية في لغة برمجة Google Carbon.

fn AgeLogger(var age: i32) {

  if(age == 0){

   Print("Carbon is {0} years old", age);

  } else {

   Print("Carbon is not {0} years old", age);

  }  

}

حلقة while في لغة الكربون

استخدام حلقة while في لغة الكربون هو نفس استخدام هذه الحلقة في لغات البرمجة الأخرى. طالما أن قيمة التعبير أمام هذا الأمر تساوي True، فسيتم تنفيذ الأوامر داخل الحلقة. فيما يلي مثال على هذه الحلقة بلغة الكربون.

var x: i32 = 0;

while (not (x == 3)) {

    Print("I am number {0}", x);

    x = x + 1;

}

Print("Done!");

إخراج الكود أعلاه كما يلي:

حلقة For في لغة برمجة Google Carbon

في لغة برمجة Carbon، تُستخدم حلقة For كما في لغات البرمجة الأخرى لتكرار سلسلة من الأوامر لعدد معين من المرات. يوضح المثال التالي كيفية استخدام هذه الحلقة بلغة الكربون الخاصة بـ Google.

var names: [String;3] = ("str1", "str2", "str3");

  for (var name: String in names) {

    Print(name);

  }

وتجدر الإشارة إلى أنه يمكن استخدام أمرين، continue و break، داخل الحلقات. يؤدي أمر المتابعة إلى تنفيذ الخطوة التالية من الحلقة وتنفيذ الحلقة لتقدم وحدة واحدة. يستخدم الأمر break أيضًا لإيقاف تنفيذ الحلقة.

الأمر Match في لغة برمجة Google Carbon

يتم استخدام الأمر Match للتحقق من حالات متعددة للتعبير. فيما يلي، يتم تقديم كيفية استخدام هذا الأمر في شكل مثال.

fn TheMatcher() -> String {

  Print("I am here");

  var x: i32 = 2;

  match (x) {

    case (0) => {

      return "Matching zero";

    }

    case (1) => {

      return "Matching one";

    }

    case (2) => {

      return "Matching two";

    }

    default => {

      return "Matching none";

    }

  }

}

في المثال أعلاه، يتم فحص قيمة المتغير x بواسطة كل أمر من أوامر الحالة، وإذا كانت قيمة هذا المتغير مساوية لقيمة الأمر case، يتم تنفيذ جزء الكود المقابل لجسم هذه الحالة. يتم تنفيذ القسم الافتراضي أيضًا عندما لا تكون قيمة المتغير x مساوية لأي من التعبيرات الموجودة أمام عبارات الحالة.

هياكل البيانات بلغة Google Carbon

مثل لغات البرمجة الأخرى، تستخدم لغة الكربون في Google مجموعة متنوعة من هياكل البيانات لتخزين البيانات. فيما يلي قائمة بهياكل البيانات لهذه اللغة:

  • Tuple
  • Array
  • Struct

أيضًا، تدعم هذه اللغة اتجاه الكائن. نظرًا لأنه من أجل تنفيذ مبادئ توجيه الكائن، من الضروري تحديد فئة، لذلك، باستخدام هذه اللغة، يمكنك تحديد فئات ووظائف مختلفة. في ما يلي، سيتم شرح كل من الهياكل المذكورة في لغة Google للكربون مع مثال.

Tuple في لغة الكربون

تُستخدم بنية بيانات tuple بلغة الكربون لتخزين القيم بأنواع بيانات مختلفة. طول هذا النوع من بنية البيانات ثابت ولا يمكن تغيير حجمه لاحقًا في البرنامج بعد تعريف المجموعة وتهيئتها. من أجل الوصول إلى قيم tuple، يمكننا استخدام index.

في مقتطف الشفرة التالي ، يمكن رؤية مثال على tuple بلغة Carbon. في هذا المثال، يتم تعيين بنية بيانات tuple مع القيم (0, 1, 2, “omega”) إلى متغير يسمى x.

fn UseStruct() {

  var data: auto = {.x_var = 3, .b_var = 2, .m_slope = 7};

  var y: i32 = data.m_slope * data.x_var + data.b_var;

  Print("y: {0}", y);

}

 

 

// output: 

y: 23

Array بلغة الكربون

في لغة الكربون، تُستخدم بنية بيانات Array أيضًا لتخزين القيم من نفس النوع. لتعريف المصفوفة، يتم استخدام البنية [type, number of values]. يحدد نوع وعدد القيم عدد العناصر في المصفوفة. يمكن أيضًا الوصول إلى القيم الموجودة في المصفوفة باستخدام الفهرس. فيما يلي مثال على تعريف المصفوفة في لغة برمجة كربون.

var array: [i32; 4] = (0, 1, 2, 3);

// It is possible to omit the number of values 

// when the size of the array can be inferred

var array: [i32;] = (0, 1, 2, 3);

// access elements using square brakets

Print(array[0]);

Struct في لغة كربون

يسمح هذا النوع من البنية بتخزين القيم بطريقة يمكن الوصول إلى القيم بالاسم بدلاً من الفهرس. هناك نوعان من التركيبات في لغة برمجة الكربون:

  • “نوع البنية” (struct type): باستخدام هذه البنية، يمكن تعريف قيم أنواع البيانات على أنها {.name: String, .count: i32}
  • “بنية القيمة” (Struct value): باستخدام هذه البنية، يمكن تحديد قيم مختلفة لسلسلة من السمات. 

في المثال أدناه، x_var و b_var و m_slope هي سمات محددة تم تعيينها للقيم 3 و 2 و 7.

fn UseStruct() {

  var data: auto = {.x_var = 3, .b_var = 2, .m_slope = 7};

  var y: i32 = data.m_slope * data.x_var + data.b_var;

  Print("y: {0}", y);

}

 

// output: 

y: 23
منشور ذات صلة
أمن قاعدة البيانات 7 Minutes

ما هو أمن قاعدة البيانات؟

منال ناصر

يشير أمان قاعدة البيانات إلى التدابير المختلفة التي تستخدمها المؤسسات لضمان حماية قواعد البيانات الخاصة بها من التهديدات الداخلية والخارجية.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

السلة