বছর আগে, আমি অ্যাপলসফট বেসিক শিখেছি। স্ট্রিংগুলি সর্বদা প্রত্যয়যুক্ত $ছিল এবং অ্যারেগুলির প্রত্যয় ছিল %। ঠিক কীভাবে ভাষা কাজ করে। আপনি কোন কিছুর দিকে চেয়েছিলেন, আপনি জানতেন এটি কী। এই ঘটনাটি বা ডিজাইনের সিদ্ধান্তগুলি কেন এটি হয়েছিল তা বোঝার জন্য আমি কখনই দোভাষীকে খুব বেশি দূরে সন্ধান করতে পারি নি।
পিএইচপি sigil তার Perl প্রভাব (যা দ্বারা প্রভাবিত হয়েছিলেন থেকে আসে awkএবং sh)। পার্লের সিগিলটি $বিভিন্ন ধরণের বিভিন্ন শনাক্ত করতে পারে তার চেয়ে কিছুটা বেশি :
$ স্কালে
@ তালিকা
% কাটা
& উবুন্টুতে
* typeglob
সিগিল চিহ্নিত করছে যে আপনি সারণী কাঠামোর কাঠামোর দিকে তাকিয়ে আছেন। পর্দার আড়ালে, *foofoo- এর প্রতীক টেবিল এন্ট্রি (এর মাধ্যমে অ্যাক্সেস করা হয়েছে - টাইপগ্লোব) এমন কিছু রয়েছে যা ফু হতে পারে। নেই $foo, @foo, %foo, বিন্যাস foo , &foo, filehandle foo বিন্যাস, ইত্যাদি ...
এটি অন্য একটি ভেরিয়েবলের একটি উপাধ তৈরি করতে দেয়:
#!/usr/bin/perl
$foo = "foo";
@qux = (1,2);
*bar = \$foo;
*bar = \@qux;
print "$bar @bar\n";
এই মুদ্রণগুলি foo 1 2- পার্লে, সিগিলগুলি সত্যই এটির জন্য যা আপনাকে এই কাজটি করা উচিত নয় বরং তারা যা করছেন সেগুলির পিছনে এটি রয়েছে।
Sigils পাঠযোগ্যতা জন্য আপনাকে অনেক নেই, বরং তাই এক থাকতে পারে $fooএবং @fooনামস্থানে একটি সংঘর্ষের করেও (অন্যান্য ভাষায় তুলনা এক উভয় থাকতে পারে না যেখানে int foo; int[] foo;)
পঠনযোগ্যতার জন্য সিগিলগুলি এমন কোনও কিছু যা কোনও ভাষার অংশ হিসাবে শিখে যায় - সিনট্যাক্স পড়া। আপনি, হাইপোথটিকালি এই টাইপটি নিজেই প্রয়োগ করতে পারবেন (হাদীস নোটেশন হিসাবে) সনাক্তকারীটির অংশ হতে।
এর লাইন বরাবর লেক্সে কিছু:
typeChar [is]
capLetter [A-Z]
letter [a-z]
digit [0-9]
%%
{typeChar}{capLetter}(letter}|{digit})* { prientif("iddentifier");}
%%
এবং তারপরে আপনার মতো কোড থাকতে পারে
iFoo = 42;
sFoo = "a string";
iBar = iFoo * 2;
আমি এটি বলছি না এটি একটি ভাল ধারণা, বরং ভাষাটির সাথে অভ্যস্ত যে কেউ এই স্থানীয়ভাবে পড়তে সক্ষম হবে এবং ভাবতে পারে যে এটি পাঠের দক্ষতা বাড়িয়েছে, তবে যে ভাষাটির সাথে পরিচিত নয় এমন কেউ ভাবতে পারে যে এটি কেবল যুক্ত করেছে ভাষার একগুচ্ছ শব্দ noise
যাইহোক, এইভাবে সংজ্ঞায়িত কোনও ভাষা নিয়ে কাজ করার পরে আমি সম্ভবত সমস্যা ছাড়াই এটি পড়তে পারি।
কিছু লোক তাদের পছন্দ করে, কিছু লোক তা পছন্দ করে না। বিভিন্ন ফোরামে এটি নিয়ে বিতর্ক করার জন্য দুর্দান্ত পবিত্র যুদ্ধ রয়েছে এবং আপনি তাদের কতটা ব্যবহার করেছেন তা সত্যিই এটি ফোটে।
সিগিল ব্যবহার করে এমন নন-প্রোগ্রামারদের জন্য কেউ একটি নতুন ভাষার নকশা তৈরি করতে পারে এবং যে কেউ আগে কখনও অগ্রগতি করেনি সেগুলি তাদের সম্পর্কে একবারও অভিযোগ করবে না। অন্যদিকে, আপনি তাদের ভাষার অংশ হিসাবে না রাখতে পারেন এবং তারপরে রুবি বা পার্ল প্রগ্রেমারদের অভিযোগ রয়েছে যে তারা কিছু মূল তথ্য হারিয়েছেন।
আসলেই কিছু যায় আসে না। কী ব্যাপার তা হল সিগিলগুলি যদি ভাষা ব্যবহার করে তবে সেগুলি ব্যবহার না করে। আপনি কি করতে সক্ষম হতে চান "123 $foo 456"বা আপনার অবশ্যই করা উচিত "123 " + foo + " 456"? এখানেই সিদ্ধান্ত নেওয়া উচিত।