সাধারণ লিস্পের এই পুরানো সমালোচনাগুলির মধ্যে কোনটি আজও প্রযোজ্য?


29

ইন কমন পাতার মর্মর একটি সমালোচনায় 1984 সালে রব্নি উ: ব্রুকস এবং স্ট্যানফোর্ড থেকে রিচার্ড পি গ্যাব্রিয়েল দ্বারা লিখিত, কিছু নকশা প্রচলিত পাতার মর্মর স্বাভাবিক কমিটি দ্বারা অপরিবর্তিত রাখা সিদ্ধান্ত আলোচনা করা হয়েছে। যদিও বেশিরভাগ আলোচনাই বৈধ থাকে, এমন দুটি বক্তব্য রয়েছে যা সেই সময়ে উপলব্ধ প্রযুক্তি সম্পর্কিত এবং এটি আজ ভুল হতে পারে।

এই দুটি বিবৃতি হ'ল:

'যে কোনও ভাল সংকলক' তাদের যত্ন নিতে পারে এই পরামর্শ দিয়ে ভাষার প্রচুর ব্যয়কে বরখাস্ত করা হয়েছিল। এখনও কেউ লেখেনি - না প্রচণ্ড প্রচেষ্টা ছাড়াই সম্ভব নয় — এমন একটি সংকলক যা প্রত্যাশিত কৌশলগুলির একটি ভগ্নাংশ করে।

যেহেতু আমি একটি সাধারণ লিস্প নবাগত বা এমনকি শিক্ষানবিস, আমি লেখকদের চেয়ে বেশি নির্দিষ্ট হতে পারছি না। তারা বলে মনে হয় যে একটি দুর্দান্ত সাধারণতা এবং নমনীয়তা ভাষার বেশ কয়েকটি অংশে নির্মিত হয়েছে, যা একটি ভাল সংকলক লেখাকে বেশ কঠিন করে তোলে।

সিএমএন এলআইএসপিতে ভাসমান-পয়েন্ট পাটিগণিতের উপরে কিছুটা নিয়ন্ত্রণ রাখা হয়েছিল। এবং অবশ্যই, যদিও একটি ভাসমান-পয়েন্ট-নিবিড় কর্মসূচীর সঠিক আচরণ অর্জন করা যেতে পারে, পারফরম্যান্সটি হিংস্রভাবে পরিবর্তিত হতে পারে।

আমি যতদূর বুঝতে পেরেছি, দেখে মনে হচ্ছে কমন লিস্পে দক্ষ সংখ্যাসূচক কোড লেখা সম্ভব তবে এর চেয়ে চ্যালেঞ্জিং।

এটি ছিল তিরিশ বছর আগে। আমি যদি আজকে এই সাধারণ বিবৃতিটিকে সাধারণ ফ্রি সফটওয়্যার বাস্তবায়নের (সিআইএলএসপি, এসবিসিএল এবং অন্যান্য) জন্য কমন লিস্প প্রোগ্রাম লিখতে ইচ্ছুক থাকি তবে এই বিবৃতিটিকে কীভাবে বিবেচনা করব?


দুর্দান্ত প্রশ্ন! এই বিষয়ে সাধারণ লিপ্প সম্পর্কে জ্ঞাত কারও কাছ থেকে শুনতে পছন্দ করবেন। আমার ভয় হ'ল আজকাল কমন লিস্পের আপাত আপেক্ষিক জনপ্রিয়তার ভিত্তিতে তারা এখনও প্রয়োগ করে apply

1
ভাসমান-পয়েন্টটি সঠিকভাবে পাওয়া শক্ত। কিছু ভাষাগুলি একটি কঠোর মডেল নির্দিষ্ট করে এবং পারফরম্যান্সের ভিত্তিতে ভোগ করে, অন্যরা একটি আলগা মডেল ব্যবহার করে এবং তর্ক করা শক্ত hard উদাহরণস্বরূপ সি # তে এমনকি সাধারণ ভাসমান পয়েন্ট প্রোগ্রামগুলি সম্পর্কে যুক্তি করা আমার পক্ষে খুব কঠিন। সুতরাং আমি ভাষা ডিজাইনারদের পক্ষে রয়েছি যারা ভাসমান পয়েন্টের সাথে কঠোর, এমনকি এটির জন্য পারফরম্যান্স ব্যয় করা হলেও।
কোডসইনচাউস

2
অন্যদিকে, আধুনিক হার্ডওয়্যার সাধারণত আইইইই ভাসমান পয়েন্ট প্রয়োগ করে, তাই এটি সম্ভবত 1984 সালে উপলব্ধ বাস্তবায়নগুলির তুলনায় এর আচরণে অনেক বেশি অনুমানযোগ্য
মাইক্রোথেরিয়ন

উত্তর:


31

কাগজটি বিভিন্ন উপায়ে আকর্ষণীয়।

সবচেয়ে আকর্ষণীয় অংশটি হ'ল: লেখকরা ১৯৮6 সালে কেবল দুটি বছর পরে 1986 সালে কাগজটি মিথ্যাবাদী লিখেছিলেন। ব্রুকস এবং গ্যাব্রিয়েল একটি অত্যন্ত অনুকূল লিস্প সংকলকটি বিকাশ করেছিলেন এবং বেশ কয়েক বছর ধরে এটি বাণিজ্যিকভাবে খুব সফলভাবে বিক্রি করেছিলেন: লুসিড কমন লিস্প (পিডিএফ)।

এই লিস্প সংকলকের রক্ষণাবেক্ষণ এখনও লিস্প ওয়ার্কস থেকে পাওয়া যায় : এটি এখন তরল কমন লিস্প নামে পরিচিত ।

লিকুইড সিএল এর সংকলক অপ্টিমাইজেশানগুলি উন্নত ব্যবহারকারীর গাইডের 3 তম অধ্যায়ে নথিভুক্ত করা হয়েছে : লিস্প প্রোগ্রামগুলি অনুকূল করা

বেশ কয়েকটি বাণিজ্যিক অ্যাপ্লিকেশন লিউসিড সিএলে লিখিত এবং মোতায়েন করা হয়েছে। উদাহরণস্বরূপ, আমার হোম শহরে এইচভিভি (হ্যামবার্গার ভার্কেহসার্ভারবন্ড) এর জন্য সর্বপ্রথম গণপরিবহন তথ্য সিস্টেমটি সান স্পারস্টেশনে লুসিড সিএল ব্যবহার করে মোতায়েন করা হয়েছিল। এটি একটি বিশাল টাচ স্ক্রিন ব্যবহার করে এবং কল সেন্টারে ট্রেন স্টেশনগুলিতে জনসাধারণের জন্য উপলব্ধ ছিল।

লুসিড সিএল সফল হয়েছিল কারণ এর উত্পাদন মোড সংকলকটি মূলত ইউনিক্স / আরআইএসসি প্ল্যাটফর্মগুলির জন্য দ্রুত কমন লিস্প অ্যাপ্লিকেশন তৈরি করে।

ব্রুকস এবং গ্যাব্রিয়েল 1986 সালে লুসিড কমন লিস্প সম্পর্কে লিখেছেন:

গতিশীলভাবে পুনঃনির্ধারণযোগ্য সংকলককে এমন এক মাধ্যম হিসাবে দেখানো হয়েছে যার মাধ্যমে বিভিন্ন লিস্প বাস্তবায়নের জন্য সংকলনের স্বাচ্ছন্দ্য সম্পাদন করা যায়; বিভিন্ন কম্পিউটারে লিস্প সিস্টেমগুলি বন্দর করার একটি মাধ্যম; এবং একটি সাধারণ উত্স থেকে বিভিন্ন কম্পিউটারের জন্য উচ্চ-মানের, উচ্চ-সম্পাদনা কোড তৈরির জন্য একটি সরঞ্জাম।

সুতরাং তারা কমন লিস্পের এ ক্রিটিক যা কঠিন বা অসম্ভব বলে দাবি করেছিল তা কেবল কার্যকর করেছে implemented

আজকাল আরও উন্নত বাস্তবায়নগুলি অনেক অপ্টিমাইজেশন করছে, তবে হার্ডওয়্যারটি আমরা 1984 এর তুলনায় 1000+ গুণ বেশি গতিযুক্ত A যে পরিসীমা। একটি মোটোরোলা 68000 এর ঘড়ির হার 8 মেগাহার্টজ ছিল।

ভাসমান পয়েন্ট কর্মক্ষমতা এবং সাধারণভাবে ভিন্ন ভিন্ন পারফরম্যান্স সম্পর্কে সমালোচনা এখনও বৈধ, তবে এটি বাস্তবায়নকারীদের পছন্দকে প্রতিফলিত করে। কিছু বাস্তবায়ন উচ্চ-সম্পাদনা সংকলক হিসাবে বিকাশিত হয় না। তাদের প্রধান ফোকাস বহনযোগ্যতা, সংক্ষিপ্ততা বা অন্য কিছু হতে পারে এবং সুতরাং তাদের বিভিন্ন বাস্তবায়নের লক্ষ্য থাকতে পারে।

একটি ব্যবহারকারী / ডেভেলপার এক পোর্টেবল কোড লিখতে এবং ব্যবহার করতে বাধ্য করা হয় না হিসাবে সব দশ + + বর্তমানে সমর্থিত প্রচলিত পাতার মর্মর ব্যবস্থা। প্রয়োগের সমস্যার জন্য উপযুক্ত যা প্রয়োগটি ব্যবহার করুন।


আপনার উত্তরটি খুব সুনির্দিষ্ট এবং বিস্তারিত, এটি অবশ্যই অনুগ্রহের দাবিদার!
ব্যবহারকারীর 40989

1
"উচ্চতর অনুকূলিতকরণ" এর অর্থ এই নয় যে সংকলকটি "যথেষ্ট চালাক"। "যথেষ্ট চালাক" শব্দটি "কী উদ্দেশ্যে?" প্রশ্ন উত্থাপন করে। এখনও অ্যাপ্লিকেশন রয়েছে (মূলত খুব সীমাবদ্ধ এম্বেডেড প্ল্যাটফর্মের জন্য) যা আপনি কমন লিস্পে লিখবেন না কারণ অপ্টিমাইজেশন এখনও গতিশীল টাইপিং, গাদা বরাদ্দ এবং আবর্জনা সংগ্রহ থেকে সমস্ত রান-টাইম ওভারহেডগুলি মুছে ফেলতে পারে না। অবশ্যই কমন লিস্প কোনওভাবেই সেই "ব্যর্থতা "তে অনন্য নয়। বন্যটিতে এখনও কোনও ভাষা পরিলক্ষিত হয়নি যা নিখুঁতভাবে প্রতিটি কিছুর জন্য উপযুক্ত।
স্টিভ 314

@ স্টিভ 314: ইউনিক্স ওয়ার্কস্টেশন এবং সার্ভারগুলিতে লুসিড সিএল লক্ষ্যগুলি লিস্প ভিত্তিক এআই সিস্টেম, সিএডি সিস্টেম ইত্যাদির বাজার ছিল। লুসিড সিএল লক্ষ্য এম্বেড করা সিস্টেম ছিল না। লুসিড সিএল সঞ্চালিত আবর্জনা সংগ্রহকারী সহ গতিশীল টাইপিং, গাদা বরাদ্দ এবং অন্যান্য অনেক অপ্টিমাইজেশন ক্ষেত্রগুলিকে রান-টাইম ওভারহেড সম্বোধন করে। তবুও, জিসি বেশিরভাগ প্রয়োজন। সাধারণত অ্যাপ্লিকেশন কনসেশন এড়ানোর জন্য বিশেষ কৌশলগুলি ব্যবহার করে এবং এর ফলে 'রিসোর্স' পুলগুলির মতো জিসি হার হ্রাস করতে পারে।
রাইনার জোসভিগ

21

১৯৮৮ সালে যখন এই কাগজটি লেখা হয়েছিল, তখন আপনার কম্পিউটারে 1 মেগাবাইট র‍্যাম এবং একটি 20 মেগাবাইট হার্ড ড্রাইভ থাকা কম্পিউটারটি আপনার ডেস্কে বসতে সক্ষম ছিল, এটি একটি বড় কথা ছিল। স্বাভাবিকভাবেই, কোনও ভাষার ব্যবহারিকতা নিয়ে বিরোধগুলি উত্থাপিত হয় যতটা উচ্চ স্তরের লিস্প স্পার্টানের হার্ডওয়্যারে রয়েছে। তখন থেকেই যে উভয় হার্ডওয়্যার এবং সংকলক প্রযুক্তির অগ্রগতি হয়েছে তা ভাষায় উপস্থিত কোনও সংখ্যাসূচক অক্ষমতা নির্বিশেষে লিস্প প্রোগ্রামগুলি লেখার এবং সম্পাদনকে অনেক সহজ করে তুলেছে।

প্রোগ্রামারগুলি প্রায়শই প্রোগ্রামিং দক্ষতার জন্য গণ্য দক্ষতার বাণিজ্য করে। লিস্প একটি ধীর ভাষা হতে পারে (কিছু বাস্তবায়নে, তবে অন্যান্য ভাষাগুলিও হতে পারে) তবে দ্রুত বিকাশের জন্য এটিরও যথেষ্ট প্রাপ্য খ্যাতি রয়েছে এবং পর্যাপ্ত কর্মক্ষমতা প্রদর্শনের জন্য অনেকগুলি প্রোগ্রামের জন্য উচ্চ-অনুকূলিত কাঠামোগত প্রয়োজন হয় না।

লিস্প বাস্তবায়নের পছন্দটি আপনার প্রোগ্রামগুলির পারফরম্যান্সের প্রোফাইলকে ব্যাপকভাবে প্রভাবিত করতে পারে। উদাহরণস্বরূপ, সিএলআইএসপি সহজেই স্বীকার করে যে "আপনার কোডটি যদি ভারী সংখ্যাসূচক হয় তবে আপনি সিএমইউসিএলকে পছন্দ করতে পারেন।" বেশ কয়েকটি আধুনিক লিস্প (এবং স্কিম) বাস্তবায়ন আপনাকে সংখ্যার প্রকারের ইঙ্গিতগুলি নির্দিষ্ট করতে দেয় যা সংখ্যার কার্য সম্পাদনকে বাড়িয়ে তুলবে।

সংক্ষেপে, পরিস্থিতি আজকের সময়ের চেয়ে অনেক ভাল better

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.