Concepts and Semantics of Programming Languages 1. Therese Hardin

Чтение книги онлайн.

Читать онлайн книгу Concepts and Semantics of Programming Languages 1 - Therese Hardin страница 6

Concepts and Semantics of Programming Languages 1 - Therese Hardin

Скачать книгу

style="font-size:15px;">      293 291

      294  293

      295 294

      296  295

      297 296

      298 297

      299 298

      300  299

      301  300

      302  301

      303  302

      304  303

      305  304

      306  305

      307  306

      308  307

      309  308

      310  309

      311  310

      Concepts and Semantics of Programming Languages 1

       A Semantical Approach with OCaml and Python

      Thérèse Hardin

      Mathieu Jaume

      François Pessaux

      Véronique Viguié Donzeau-Gouge

      part from any fair dealing for the purposes of research or private study, or criticism or review, as permitted under the Copyright, Designs and Patents Act 1988, this publication may only be reproduced, stored or transmitted, in any form or by any means, with the prior permission in writing of the publishers, or in the case of reprographic reproduction in accordance with the terms and licenses issued by the CLA. Enquiries concerning reproduction outside these terms should be sent to the publishers at the undermentioned address:

      ISTE Ltd

      John Wiley & Sons, Inc.

      27-37 St George’s Road

      111 River Street

      London SW19 4EU

      Hoboken, NJ 07030

      UK

      USA

       www.iste.co.uk

       www.wiley.com

      © ISTE Ltd 2021

      The rights of Thérèse Hardin, Mathieu Jaume, François Pessaux and Véronique Viguié Donzeau-Gouge to be identified as the authors of this work have been asserted by them in accordance with the Copyright, Designs and Patents Act 1988.

      Library of Congress Control Number: 2021930488

      British Library Cataloguing-in-Publication Data

      A CIP record for this book is available from the British Library

      ISBN 978-1-78630-530-5

      Foreword

      Computer programs have played an increasingly central role in our lives since the 1940s, and the quality of these programs has thus become a crucial question. Writing a high-quality program – a program that performs the required task and is efficient, robust, easy to modify, easy to extend, etc. – is an intellectually challenging task, requiring the use of rigorous development methods. First and foremost, however, the creation of such a program is dependent on an in-depth knowledge of the programming language used, its syntax and, crucially, its semantics, i.e. what happens when a program is executed.

      The description of this semantics puts the most fundamental concepts into light, including those of value, reference, exception or object. These concepts are the foundations of programming language theory. Mastering these concepts is what sets experienced programmers apart from beginners. Certain concepts – like that of value – are common to all programming languages; others – such as the notion of functions – operate differently in different languages; finally, other concepts – such as that of objects – only exist in certain languages. Computer scientists often refer to “programming paradigms” to consider sets of concepts shared by a family of languages, which imply a certain programming style: imperative, functional, object-oriented, logical, concurrent, etc. Nevertheless, an understanding of the concepts themselves is essential, as several paradigms may be interwoven within the same language.

      Gilles DOWEK

      Research Director, Inria

      Professor at the École normale supérieure, Paris-Saclay

      Catherine DUBOIS

      Professor at the École nationale supérieure

      d’informatique pour l’industrie et l’entreprise

      January 2021

      Preface

      This two-volume work relates to the field of programming. First and foremost, it is intended to give readers a solid grounding in the bases of functional or imperative programming, along with a thorough knowledge of the module and class mechanisms involved. In our view, the semantics approach is most appropriate when studying programming, as the impact

Скачать книгу